login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for LinearOperator revision 2 of 63

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
Editor: Bill Page
Time: 2011/03/08 01:07:28 GMT-8
Note: examples

added:
    arity: % -> DirectProduct(2,NonNegativeInteger)

changed:
-    coerce: DirectProduct(dim,K) -> %
    coerce: Vector K -> %
    coerce: Vector % -> %

added:
    coerce: SquareMatrix(dim,K) -> %

added:
    arity(x:%):DirectProduct(2,NonNegativeInteger) == directProduct [rep(x).n,rep(x).m]

changed:
-      yn:=rep(y).n
-      xm:=rep(x).m
      yn:=rep(y).n  -- outputs of y
      xm:=rep(x).m  -- inputs of x

changed:
-        r:=contract(r,rep(x).n+xm,yn+rep(y).m)
        print(yn::OutputForm)$PrintPackage
        print(xm::OutputForm)$PrintPackage
        r:=contract(r,rep(x).n+xm,yn+rep(x).m)

changed:
-    coerce(x:DirectProduct(dim,K)):% == per [0,1,x::T]
-    coerce(x:List K):% == per [1,0,x::T]
    coerce(x:Vector K):% == per [0,1,entries(x)::T]
    coerce(x:List K):% == per [1,0,entries(x)::T]

added:
    coerce(x:SquareMatrix(dim,K)):% == per [2,0,x::T]
    coerce(x:%):OutputForm == (rep(x).t)::OutputForm

added:

\begin{axiom}
Y:LIN(2,FRAC POLY INT):=[y1,y2]::List FRAC POLY INT
arity Y
A:LIN(2,FRAC POLY INT):=[a1,a2]::Vector FRAC POLY INT
arity A
X:LIN(2, FRAC POLY INT):=[[x11,x12],[x21,x22]]::SquareMatrix(2,FRAC POLY INT)
arity(X)
T:=A*Y
arity(T)
C:=A Y
arity(C)
D:= Y A
arity(D)
XA:=X A
arity(XA)
Z:LIN(2, FRAC POLY INT):=[A,A]
arity(Z)
\end{axiom}

spad
)abbrev domain LIN LinearOperator
LinearOperator(dim:NonNegativeInteger,K:CommutativeRing): Join(Ring,BiModule(K,K)) with
    arity: % -> DirectProduct(2,NonNegativeInteger)
    elt: (%,%) -> %
    id: %
    coerce: Vector K -> %
    coerce: Vector % -> %
    coerce: List K -> %
    coerce: List % -> %
    coerce: SquareMatrix(dim,K) -> %
  == add
    import List NonNegativeInteger
    T == CartesianTensor(1,dim,K)
    Rep == Record(n:NonNegativeInteger, m:NonNegativeInteger, t:T)
    rep(x:%):Rep == x pretend Rep
    per(x:Rep):% == x pretend %
arity(x:%):DirectProduct(2,NonNegativeInteger) == directProduct [rep(x).n,rep(x).m] 0 == per [0,0,0] (x:% + y:%):% == rep(x).t=0 => per [rep(y).n,rep(y).m,rep(y).t] rep(y).t=0 => per [rep(x).n,rep(x).m,rep(x).t] rep(x).n ~= rep(y).n or rep(x).m ~= rep(y).m => error "arity" per [rep(x).n,rep(x).m,rep(x).t+rep(y).t] (x:% - y:%):% == rep(x).t=0 => per [rep(y).n,rep(y).m,-rep(y).t] rep(y).t=0 => per [rep(x).n,rep(x).m,rep(x).t] rep(x).n ~= rep(y).n or rep(x).m ~= rep(y).m => error "arity" per [rep(x).n,rep(x).m,rep(x).t-rep(y).t] 1 == per [0,0,1] (x:% * y:%):% == per [rep(x).n+rep(y).n,rep(x).m+rep(y).m,product(rep(x).t, rep(y).t)] (x:% = y:%):Boolean == rep(x).n ~= rep(y).n or rep(x).m ~= rep(y).m => error "arity" rep(x).t = rep(y).t (x:K * y:%):% == per [rep(y).n,rep(y).m,x*rep(y).t] (x:% * y:K):% == per [rep(x).n,rep(x).m,rep(x).t*y] elt(x:%,y:%):% == r:=product(rep(x).t,rep(y).t) yn:=rep(y).n -- outputs of y xm:=rep(x).m -- inputs of x while yn>0 and xm>0 repeat print(yn::OutputForm)$PrintPackage print(xm::OutputForm)$PrintPackage r:=contract(r,rep(x).n+xm,yn+rep(x).m) yn:=subtractIfCan(yn,1)::NonNegativeInteger xm:=subtractIfCan(xm,1)::NonNegativeInteger per [rep(x).n+xm,yn+rep(y).m,r] id:% == per [1,1,1] coerce(x:Vector K):% == per [0,1,entries(x)::T] coerce(x:List K):% == per [1,0,entries(x)::T] coerce(x:List %):% == #removeDuplicates([rep(y).n for y in x])~=1 or #removeDuplicates([rep(y).m for y in x])~=1 => error "arity" per [rep(first x).n+1,rep(first x).m,[rep(y).t for y in x]::T]$Rep coerce(x:SquareMatrix(dim,K)):% == per [2,0,x::T] coerce(x:%):OutputForm == (rep(x).t)::OutputForm
spad
   Compiling FriCAS source code from file 
      /var/zope2/var/LatexWiki/2311065628842128602-25px001.spad using 
      old system compiler.
   LIN abbreviates domain LinearOperator 
------------------------------------------------------------------------
   initializing NRLIB LIN for LinearOperator 
   compiling into NRLIB LIN 
   importing List NonNegativeInteger
   compiling local rep : $ -> Record(n: NonNegativeInteger,m: NonNegativeInteger,t: CartesianTensor(One,dim,K))
      LIN;rep is replaced by x 
Time: 0.14 SEC.
compiling local per : Record(n: NonNegativeInteger,m: NonNegativeInteger,t: CartesianTensor(One,dim,K)) -> $ LIN;per is replaced by x Time: 0 SEC.
compiling exported arity : $ -> DirectProduct(2,NonNegativeInteger) Time: 0.02 SEC.
compiling exported Zero : () -> $ Time: 0.01 SEC.
compiling exported + : ($,$) -> $ Time: 0.26 SEC.
compiling exported - : ($,$) -> $ Time: 0.02 SEC.
compiling exported One : () -> $ Time: 0 SEC.
compiling exported * : ($,$) -> $ Time: 0 SEC.
compiling exported = : ($,$) -> Boolean Time: 0.01 SEC.
compiling exported * : (K,$) -> $ Time: 0.01 SEC.
compiling exported * : ($,K) -> $ Time: 0.01 SEC.
compiling exported elt : ($,$) -> $ Time: 0.01 SEC.
compiling local id : () -> $ Time: 0 SEC.
compiling exported coerce : Vector K -> $ Time: 0.06 SEC.
compiling exported coerce : List K -> $ Time: 0.05 SEC.
compiling exported coerce : List $ -> $ Time: 0.09 SEC.
compiling exported coerce : SquareMatrix(dim,K) -> $ Time: 0 SEC.
compiling exported coerce : $ -> OutputForm Time: 0 SEC.
(time taken in buildFunctor: 10)
;;; *** |LinearOperator| REDEFINED
;;; *** |LinearOperator| REDEFINED Time: 0.02 SEC.
Cumulative Statistics for Constructor LinearOperator Time: 0.71 seconds
finalizing NRLIB LIN Processing LinearOperator for Browser database: --->-->LinearOperator((arity ((DirectProduct 2 (NonNegativeInteger)) %))): Not documented!!!! --->-->LinearOperator((elt (% % %))): Not documented!!!! --->-->LinearOperator(): Not documented!!!! --->-->LinearOperator((coerce (% (Vector K)))): Not documented!!!! --->-->LinearOperator((coerce (% (Vector %)))): Not documented!!!! --->-->LinearOperator((coerce (% (List K)))): Not documented!!!! --->-->LinearOperator((coerce (% (List %)))): Not documented!!!! --->-->LinearOperator((coerce (% (SquareMatrix dim K)))): Not documented!!!! --->-->LinearOperator(constructor): Not documented!!!! --->-->LinearOperator(): Missing Description ; compiling file "/var/zope2/var/LatexWiki/LIN.NRLIB/LIN.lsp" (written 08 MAR 2011 01:07:00 AM): ; compiling (/VERSIONCHECK 2) ; compiling (PUT (QUOTE |LIN;rep|) ...) ; compiling (DEFUN |LIN;rep| ...) ; compiling (PUT (QUOTE |LIN;per|) ...) ; compiling (DEFUN |LIN;per| ...) ; compiling (DEFUN |LIN;arity;$Dp;3| ...) ; compiling (DEFUN |LIN;Zero;$;4| ...) ; compiling (DEFUN |LIN;+;3$;5| ...) ; compiling (DEFUN |LIN;-;3$;6| ...) ; compiling (DEFUN |LIN;One;$;7| ...) ; compiling (DEFUN |LIN;*;3$;8| ...) ; compiling (DEFUN |LIN;=;2$B;9| ...) ; compiling (DEFUN |LIN;*;K2$;10| ...) ; compiling (DEFUN |LIN;*;$K$;11| ...) ; compiling (DEFUN |LIN;elt;3$;12| ...) ; compiling (DEFUN |LIN;id| ...) ; compiling (DEFUN |LIN;coerce;V$;14| ...) ; compiling (DEFUN |LIN;coerce;L$;15| ...) ; compiling (DEFUN |LIN;coerce;L$;16| ...) ; compiling (DEFUN |LIN;coerce;Sm$;17| ...) ; compiling (DEFUN |LIN;coerce;$Of;18| ...) ; compiling (DEFUN |LinearOperator| ...) ; compiling (DEFUN |LinearOperator;| ...) ; compiling (MAKEPROP (QUOTE |LinearOperator|) ...)
; /var/zope2/var/LatexWiki/LIN.NRLIB/LIN.fasl written ; compilation finished in 0:00:00.637 ------------------------------------------------------------------------ LinearOperator is now explicitly exposed in frame initial LinearOperator will be automatically loaded when needed from /var/zope2/var/LatexWiki/LIN.NRLIB/LIN

axiom
Y:LIN(2,FRAC POLY INT):=[y1,y2]::List FRAC POLY INT

\label{eq1}\left[ y 1, \: y 2 \right](1)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity Y

\label{eq2}\left[ 1, \: 0 \right](2)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
A:LIN(2,FRAC POLY INT):=[a1,a2]::Vector FRAC POLY INT

\label{eq3}\left[ a 1, \: a 2 \right](3)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity A

\label{eq4}\left[ 0, \: 1 \right](4)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
X:LIN(2, FRAC POLY INT):=[[x11,x12],[x21,x22]]::SquareMatrix(2,FRAC POLY INT)

\label{eq5}\left[ 
\begin{array}{cc}
x 11 & x 12 
\
x 21 & x 22 
(5)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity(X)

\label{eq6}\left[ 2, \: 0 \right](6)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
T:=A*Y

\label{eq7}\left[ 
\begin{array}{cc}
{a 1 \  y 1}&{a 1 \  y 2}
\
{a 2 \  y 1}&{a 2 \  y 2}
(7)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity(T)

\label{eq8}\left[ 1, \: 1 \right](8)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
C:=A Y
1 1

\label{eq9}{a 2 \  y 2}+{a 1 \  y 1}(9)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity(C)

\label{eq10}\left[ 0, \: 0 \right](10)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
D:= Y A

\label{eq11}\left[ 
\begin{array}{cc}
{a 1 \  y 1}&{a 2 \  y 1}
\
{a 1 \  y 2}&{a 2 \  y 2}
(11)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity(D)

\label{eq12}\left[ 1, \: 1 \right](12)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
XA:=X A

\label{eq13}\begin{array}{@{}l}
\displaystyle
\left[{\left[ 
\begin{array}{cc}
{a 1 \  x 11}&{a 2 \  x 11}
\
{a 1 \  x 12}&{a 2 \  x 12}
(13)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity(XA)

\label{eq14}\left[ 2, \: 1 \right](14)
Type: DirectProduct?(2,NonNegativeInteger?)
axiom
Z:LIN(2, FRAC POLY INT):=[A,A]

\label{eq15}\left[ 
\begin{array}{cc}
a 1 & a 2 
\
a 1 & a 2 
(15)
Type: LinearOperator?(2,Fraction(Polynomial(Integer)))
axiom
arity(Z)

\label{eq16}\left[ 1, \: 1 \right](16)
Type: DirectProduct?(2,NonNegativeInteger?)