axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] 20080817.03.tpd.patch (exported function documentation


From: daly
Subject: [Axiom-developer] 20080817.03.tpd.patch (exported function documentation)
Date: Mon, 18 Aug 2008 10:43:33 -0500

The following exposed functions now have )display op documentation:

CartesianTensor: ravel, leviCivitaSymbol, *, kroneckerDelta, reindex,
                 transpose, contract, product, elt, rank, coerce
CardinalNumber: -, **, generalizedContinuumHypothesisAssumed,
                generalizedContinuumHypothesisAssumed?, countable?
                finite, Aleph
BinaryExpansion: binary
InputForm: binary
ExtensibleLinearAggregate: delete!
TableAggregate: table

=======================================================================
diff --git a/changelog b/changelog
index ea20f30..f2bd54b 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,25 @@
+20080817 tpd src/algebra/vector.spad doc ravel from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc leviCivitaSymbol from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc * from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc kroneckerDelta from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc reindex from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc transpose from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc contract from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc product from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc elt from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc rank from CartesianTensor
+20080817 tpd src/algebra/vector.spad doc coerce from CartesianTensor
+20080817 tpd src/algebra/card.spad doc - from CardinalNumber
+20080817 tpd src/algebra/card.spad doc ** from CardinalNumber
+20080817 tpd src/algebra/card.spad doc generalizedContinuumHypothesisAssumed
+20080817 tpd src/algebra/card.spad doc generalizedContinuumHypothesisAssumed?
+20080817 tpd src/algebra/card.spad doc countable? from CardinalNumber
+20080817 tpd src/algebra/card.spad doc finite? from CardinalNumber
+20080817 tpd src/algebra/card.spad doc Aleph from CardinalNumber
+20080817 tpd src/algebra/radix.spad doc binary from BinaryExpansion
+20080817 tpd src/algebra/mkfunc.spad doc binary from InputForm
+20080817 tpd src/algebra/aggcat.spad doc delete! ExtensibleLinearAggregate
+20080817 tpd src/algebra/aggcat.spad doc table from TableAggregate
 20080817 tpd src/input/Makefile add function.regress
 20080817 tpd src/input/function.input fix problems with input file
 20080817 tpd books/bookvol7.1 fix uncompress
diff --git a/src/algebra/aggcat.spad.pamphlet b/src/algebra/aggcat.spad.pamphlet
index ae221f4..0719be4 100644
--- a/src/algebra/aggcat.spad.pamphlet
+++ b/src/algebra/aggcat.spad.pamphlet
@@ -1218,6 +1218,11 @@ TableAggregate(Key:SetCategory, Entry:SetCategory): 
Category ==
      ++ to \axiom{(insert([k,e],t); e)}.
    table: () -> %
      ++ table()$T creates an empty table of type T.
+     ++
+     ++E Data:=Record(age:Integer,gender:String)
+     ++E a1:AssociationList(String,Data):=table()
+     ++E a1."tim":=[55,"male"]$Data
+
    table: List Record(key:Key,entry:Entry) -> %
      ++ table([x,y,...,z]) creates a table consisting of entries
      ++ \axiom{x,y,...,z}.
@@ -2604,6 +2609,12 @@ ExtensibleLinearAggregate(S:Type):Category == 
LinearAggregate S with
      ++ v is unchanged
    delete_!: (%,Integer) -> %
      ++ delete!(u,i) destructively deletes the \axiom{i}th element of u.
+     ++
+     ++E Data:=Record(age:Integer,gender:String)
+     ++E a1:AssociationList(String,Data):=table()
+     ++E a1."tim":=[55,"male"]$Data
+     ++E delete!(a1,1)
+
    delete_!: (%,UniversalSegment(Integer)) -> %
      ++ delete!(u,i..j) destructively deletes elements u.i through u.j.
    remove_!: (S->Boolean,%) -> %
diff --git a/src/algebra/card.spad.pamphlet b/src/algebra/card.spad.pamphlet
index 4d02a4d..14c1ae9 100644
--- a/src/algebra/card.spad.pamphlet
+++ b/src/algebra/card.spad.pamphlet
@@ -376,33 +376,67 @@ CardinalNumber: Join(OrderedSet, AbelianMonoid, Monoid,
         commutative "*"
             ++ a domain D has \spad{commutative("*")} if it has an operation
             ++ \spad{"*": (D,D) -> D} which is commutative.
+
         "-": (%,%) -> Union(%,"failed")
-           ++ \spad{x - y} returns an element z such that \spad{z+y=x} or 
"failed" 
-           ++ if no such element exists.
+            ++ \spad{x - y} returns an element z such that 
+            ++ \spad{z+y=x} or "failed" if no such element exists.
+            ++
+            ++E c2:=2::CardinalNumber
+            ++E c2-c2
+            ++E A1:=Aleph 1
+            ++E A1-c2
+
         "**": (%, %) -> %
             ++ \spad{x**y} returns \spad{#(X**Y)} where \spad{X**Y} is defined
             ++  as \spad{\{g| g:Y->X\}}.
+            ++
+            ++E c2:=2::CardinalNumber
+            ++E c2**c2
+            ++E A1:=Aleph 1
+            ++E A1**c2
+            ++E generalizedContinuumHypothesisAssumed true
+            ++E A1**A1
 
         Aleph: NonNegativeInteger -> %
             ++ Aleph(n) provides the named (infinite) cardinal number.
+            ++
+            ++E A0:=Aleph 0
 
         finite?: % -> Boolean
             ++ finite?(\spad{a}) determines whether 
-            ++ \spad{a} is a finite cardinal,
-            ++ i.e. an integer.
+            ++ \spad{a} is a finite cardinal, i.e. an integer.
+            ++
+            ++E c2:=2::CardinalNumber
+            ++E finite? c2
+            ++E A0:=Aleph 0
+            ++E finite? A0
 
         countable?: % -> Boolean
             ++ countable?(\spad{a}) determines 
             ++ whether \spad{a} is a countable cardinal,
             ++ i.e. an integer or \spad{Aleph 0}.
+            ++
+            ++E c2:=2::CardinalNumber
+            ++E countable? c2
+            ++E A0:=Aleph 0
+            ++E countable? A0
+            ++E A1:=Aleph 1
+            ++E countable? A1
 
         generalizedContinuumHypothesisAssumed?: () -> Boolean
             ++ generalizedContinuumHypothesisAssumed?()
             ++ tests if the hypothesis is currently assumed.
+            ++
+            ++E generalizedContinuumHypothesisAssumed?
 
         generalizedContinuumHypothesisAssumed:  Boolean -> Boolean
             ++ generalizedContinuumHypothesisAssumed(bool)
             ++ is used to dictate whether the hypothesis is to be assumed.
+            ++
+            ++E generalizedContinuumHypothesisAssumed true
+            ++E a:=Aleph 0
+            ++E c:=2**a
+            ++E f:=2**c
     == add
         NNI ==> NonNegativeInteger
         FINord   ==> -1
diff --git a/src/algebra/carten.spad.pamphlet b/src/algebra/carten.spad.pamphlet
index 5dfedb0..8d39805 100644
--- a/src/algebra/carten.spad.pamphlet
+++ b/src/algebra/carten.spad.pamphlet
@@ -1082,42 +1082,108 @@ CartesianTensor(minix, dim, R): Exports == 
Implementation where
 
         coerce: DP(dim, R) -> %
             ++ coerce(v) views a vector as a rank 1 tensor.
+            ++
+            ++E v:DirectProduct(2,Integer):=directProduct [3,4]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+
         coerce: SM(dim, R)  -> %
             ++ coerce(m) views a matrix as a rank 2 tensor.
+            ++
+            ++E v:SquareMatrix(2,Integer):=[[1,2],[3,4]]
+            ++E tv:CartesianTensor(1,2,Integer):=v
 
         coerce: List R -> %
             ++ coerce([r_1,...,r_dim]) allows tensors to be constructed
             ++ using lists.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
 
         coerce: List % -> %
             ++ coerce([t_1,...,t_dim]) allows tensors to be constructed
             ++ using lists.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+            ++E tm:CartesianTensor(1,2,Integer):=[tv,tv]
 
         rank: % -> NNI
             ++ rank(t) returns the tensorial rank of t (that is, the
             ++ number of indices).  This is the same as the graded module
             ++ degree.
+            ++
+            ++E CT:=CARTEN(1,2,Integer)
+            ++E t0:CT:=8
+            ++E rank t0
 
         elt: (%) -> R
             ++ elt(t) gives the component of a rank 0 tensor.
+            ++
+            ++E tv:CartesianTensor(1,2,Integer):=8
+            ++E elt(tv)
+            ++E tv[]
+
         elt: (%, I) -> R
             ++ elt(t,i) gives a component of a rank 1 tensor.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+            ++E elt(tv,2)
+            ++E tv[2]
+
         elt: (%, I, I) -> R
             ++ elt(t,i,j) gives a component of a rank 2 tensor.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+            ++E tm:CartesianTensor(1,2,Integer):=[tv,tv]
+            ++E elt(tm,2,2)
+            ++E tm[2,2]
+
         elt: (%, I, I, I) -> R
             ++ elt(t,i,j,k) gives a component of a rank 3 tensor.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+            ++E tm:CartesianTensor(1,2,Integer):=[tv,tv]
+            ++E tn:CartesianTensor(1,2,Integer):=[tm,tm]
+            ++E elt(tn,2,2,2)
+            ++E tn[2,2,2]
+
         elt: (%, I, I, I, I) -> R
             ++ elt(t,i,j,k,l) gives a component of a rank 4 tensor.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+            ++E tm:CartesianTensor(1,2,Integer):=[tv,tv]
+            ++E tn:CartesianTensor(1,2,Integer):=[tm,tm]
+            ++E tp:CartesianTensor(1,2,Integer):=[tn,tn]
+            ++E elt(tp,2,2,2,2)
+            ++E tp[2,2,2,2]
 
         elt: (%, List I) -> R
             ++ elt(t,[i1,...,iN]) gives a component of a rank \spad{N} tensor.
+            ++
+            ++E v:=[2,3]
+            ++E tv:CartesianTensor(1,2,Integer):=v
+            ++E tm:CartesianTensor(1,2,Integer):=[tv,tv]
+            ++E tn:CartesianTensor(1,2,Integer):=[tm,tm]
+            ++E tp:CartesianTensor(1,2,Integer):=[tn,tn]
+            ++E tq:CartesianTensor(1,2,Integer):=[tp,tp]
+            ++E elt(tq,[2,2,2,2,2])
 
         -- This specializes the documentation from GradedAlgebra.
         product: (%,%) -> %
             ++ product(s,t) is the outer product of the tensors s and t.
-            ++ For example, if \spad{r = product(s,t)} for rank 2 tensors s 
and t,
-            ++ then \spad{r} is a rank 4 tensor given by
+            ++ For example, if \spad{r = product(s,t)} for rank 2 tensors 
+            ++ s and t, then \spad{r} is a rank 4 tensor given by
             ++     \spad{r(i,j,k,l) = s(i,j)*t(k,l)}.
+            ++
+            ++E m:SquareMatrix(2,Integer):=matrix [[1,2],[4,5]]
+            ++E Tm:CartesianTensor(1,2,Integer):=m
+            ++E n:SquareMatrix(2,Integer):=matrix [[2,3],[0,1]]
+            ++E Tn:CartesianTensor(1,2,Integer):=n
+            ++E Tmn:=product(Tm,Tn)
 
         "*": (%, %) -> %
             ++ s*t is the inner product of the tensors s and t which contracts
@@ -1126,6 +1192,12 @@ CartesianTensor(minix, dim, R): Exports == 
Implementation where
             ++     \spad{t*s = sum(k=1..N, t[i1,..,iN,k]*s[k,j1,..,jM])}
             ++ This is compatible with the use of \spad{M*v} to denote
             ++ the matrix-vector inner product.
+            ++
+            ++E m:SquareMatrix(2,Integer):=matrix [[1,2],[4,5]]
+            ++E Tm:CartesianTensor(1,2,Integer):=m
+            ++E v:DirectProduct(2,Integer):=directProduct [3,4]
+            ++E Tv:CartesianTensor(1,2,Integer):=v
+            ++E Tm*Tv
 
         contract:  (%, Integer, %, Integer) -> %
             ++ contract(t,i,s,j) is the inner product of tenors s and t
@@ -1135,6 +1207,12 @@ CartesianTensor(minix, dim, R): Exports == 
Implementation where
             ++ rank 3 tensors \spad{s} and \spad{t}, then \spad{r} is
             ++ the rank 4 \spad{(= 3 + 3 - 2)} tensor  given by
             ++     \spad{r(i,j,k,l) = sum(h=1..dim,s(i,h,j)*t(h,k,l))}.
+            ++
+            ++E m:SquareMatrix(2,Integer):=matrix [[1,2],[4,5]]
+            ++E Tm:CartesianTensor(1,2,Integer):=m
+            ++E v:DirectProduct(2,Integer):=directProduct [3,4]
+            ++E Tv:CartesianTensor(1,2,Integer):=v
+            ++E Tmv:=contract(Tm,2,Tv,1)
 
         contract:  (%, Integer, Integer)    -> %
             ++ contract(t,i,j) is the contraction of tensor t which
@@ -1143,18 +1221,34 @@ CartesianTensor(minix, dim, R): Exports == 
Implementation where
             ++ \spad{r = contract(t,1,3)} for a rank 4 tensor t, then
             ++ \spad{r} is the rank 2 \spad{(= 4 - 2)} tensor given by
             ++     \spad{r(i,j) = sum(h=1..dim,t(h,i,h,j))}.
+            ++
+            ++E m:SquareMatrix(2,Integer):=matrix [[1,2],[4,5]]
+            ++E Tm:CartesianTensor(1,2,Integer):=m
+            ++E v:DirectProduct(2,Integer):=directProduct [3,4]
+            ++E Tv:CartesianTensor(1,2,Integer):=v
+            ++E Tmv:=contract(Tm,2,1)
 
         transpose: % -> %
             ++ transpose(t) exchanges the first and last indices of t.
-            ++ For example, if \spad{r = transpose(t)} for a rank 4 tensor t, 
then
-            ++ \spad{r} is the rank 4 tensor given by
+            ++ For example, if \spad{r = transpose(t)} for a rank 4 
+            ++ tensor t, then \spad{r} is the rank 4 tensor given by
             ++     \spad{r(i,j,k,l) = t(l,j,k,i)}.
+            ++
+            ++E m:SquareMatrix(2,Integer):=matrix [[1,2],[4,5]]
+            ++E Tm:CartesianTensor(1,2,Integer):=m
+            ++E transpose(Tm)
 
         transpose: (%, Integer, Integer) -> %
-            ++ transpose(t,i,j) exchanges the \spad{i}-th and \spad{j}-th 
indices of t.
-            ++ For example, if \spad{r = transpose(t,2,3)} for a rank 4 tensor 
t, then
-            ++ \spad{r} is the rank 4 tensor given by
+            ++ transpose(t,i,j) exchanges the \spad{i}-th and \spad{j}-th 
+            ++ indices of t. For example, if \spad{r = transpose(t,2,3)} 
+            ++ for a rank 4 tensor t, then \spad{r} is the rank 4 tensor 
+            ++ given by
             ++     \spad{r(i,j,k,l) = t(i,k,j,l)}.
+            ++
+            ++E m:SquareMatrix(2,Integer):=matrix [[1,2],[4,5]]
+            ++E tm:CartesianTensor(1,2,Integer):=m
+            ++E tn:CartesianTensor(1,2,Integer):=[tm,tm]
+            ++E transpose(tn,1,2)
 
         reindex: (%, List Integer) -> %
             ++ reindex(t,[i1,...,idim]) permutes the indices of t.
@@ -1162,21 +1256,35 @@ CartesianTensor(minix, dim, R): Exports == 
Implementation where
             ++ for a rank 4 tensor t,
             ++ then \spad{r} is the rank for tensor given by
             ++     \spad{r(i,j,k,l) = t(l,i,j,k)}.
-
+            ++ 
+            ++E n:SquareMatrix(2,Integer):=matrix [[2,3],[0,1]]
+            ++E tn:CartesianTensor(1,2,Integer):=n
+            ++E p:=product(tn,tn)
+            ++E reindex(p,[4,3,2,1])
+ 
         kroneckerDelta:  () -> %
             ++ kroneckerDelta() is the rank 2 tensor defined by
             ++    \spad{kroneckerDelta()(i,j)}
             ++       \spad{= 1  if i = j}
             ++       \spad{= 0 if  i \^= j}
+            ++ 
+            ++E delta:CartesianTensor(1,2,Integer):=kroneckerDelta()
 
         leviCivitaSymbol: () -> %
             ++ leviCivitaSymbol() is the rank \spad{dim} tensor defined by
             ++ \spad{leviCivitaSymbol()(i1,...idim) = +1/0/-1}
             ++ if \spad{i1,...,idim} is an even/is nota /is an odd permutation
             ++ of \spad{minix,...,minix+dim-1}.
+            ++ 
+            ++E lcs:CartesianTensor(1,2,Integer):=leviCivitaSymbol()
+
         ravel:     % -> List R
             ++ ravel(t) produces a list of components from a tensor such that
             ++   \spad{unravel(ravel(t)) = t}.
+            ++ 
+            ++E n:SquareMatrix(2,Integer):=matrix [[2,3],[0,1]]
+            ++E tn:CartesianTensor(1,2,Integer):=n
+            ++E ravel tn
 
         unravel:   List R -> %
             ++ unravel(t) produces a tensor from a list of
diff --git a/src/algebra/mkfunc.spad.pamphlet b/src/algebra/mkfunc.spad.pamphlet
index e6db6f4..840aa2e 100644
--- a/src/algebra/mkfunc.spad.pamphlet
+++ b/src/algebra/mkfunc.spad.pamphlet
@@ -33,6 +33,10 @@ InputForm():
     binary   : (%, List %) -> %
       ++ \spad{binary(op, [a1,...,an])} returns the input form
       ++ corresponding to  \spad{a1 op a2 op ... op an}.
+      ++
+      ++E a:=[1,2,3]::List(InputForm)
+      ++E binary(_+::InputForm,a)
+
     function : (%, List Symbol, Symbol) -> %
       ++ \spad{function(code, [x1,...,xn], f)} returns the input form
       ++ corresponding to \spad{f(x1,...,xn) == code}.
diff --git a/src/algebra/radix.spad.pamphlet b/src/algebra/radix.spad.pamphlet
index 1e76d86..28185f1 100644
--- a/src/algebra/radix.spad.pamphlet
+++ b/src/algebra/radix.spad.pamphlet
@@ -344,7 +344,7 @@ RadixExpansion(bb): Exports == Implementation where
     fractRadix: (List Integer, List Integer) -> %
       ++ fractRadix(pre,cyc) creates a fractional radix expansion
       ++ from a list of prefix ragits and a list of cyclic ragits.
-      ++ For example, \spad{fractRadix([1],[6])} will return 
\spad{0.16666666...}.
+      ++ e.g., \spad{fractRadix([1],[6])} will return \spad{0.16666666...}.
 
   Implementation ==> add
     -- The efficiency of arithmetic operations is poor.
@@ -723,6 +723,8 @@ BinaryExpansion(): Exports == Implementation where
       ++ fractionPart(b) returns the fractional part of a binary expansion.
     binary: Fraction Integer -> %
       ++ binary(r) converts a rational number to a binary expansion.
+      ++
+      ++E binary(22/7)
 
   Implementation ==> RadixExpansion(2) add
     binary r == r :: %




reply via email to

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