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

Edit detail for QuadraticForm revision 4 of 4

1 2 3 4
Editor: test1
Time: 2017/01/27 18:18:43 GMT+0
Note:

changed:
-\begin{spad}
-)abbrev domain QFORM QuadraticForm
-QuadraticForm(n, K): T == Impl where
-    n: PositiveInteger
-    K: Field
-    SM ==> SquareMatrix
-    V  ==> DirectProduct
-
-    T ==> AbelianGroup with
-        quadraticForm: SM(n, K) -> %
-            ++ quadraticForm(m) creates a quadratic form from a symmetric,
-            ++ square matrix m.
-        matrix: % -> SM(n, K)
-            ++ matrix(qf) creates a square matrix from the quadratic form qf.
-        elt: (%, V(n, K)) -> K
-            ++ elt(qf,v) evaluates the quadratic form qf on the vector v,
-            ++ producing a scalar.
-        coerce: % -> InputForm
-
-    Impl ==> SM(n,K) add
-        Rep := SM(n,K)
-
-        import List InputForm
-
-        coerce(q:%):InputForm ==
-            convert(['quadraticForm,algCoerceInteractive(q,SM(n,K),
-                InputForm)$Lisp pretend InputForm])
-
-        quadraticForm m ==
-            not symmetric? m =>
-                error "quadraticForm requires a symmetric matrix"
-            m::%
-        matrix q == q pretend SM(n,K)
-        elt(q,v) == dot(v, (matrix q * v))
-\end{spad}




































added:


fricas
(1) -> )show QuadraticForm
QuadraticForm(n: PositiveInteger,K: Field) is a domain constructor Abbreviation for QuadraticForm is QFORM This constructor is exposed in this frame. ------------------------------- Operations --------------------------------
?*? : (Integer, %) -> % ?*? : (PositiveInteger, %) -> % ?+? : (%, %) -> % ?-? : (%, %) -> % -? : % -> % ?=? : (%, %) -> Boolean 0 : () -> % coerce : % -> OutputForm latex : % -> String matrix : % -> SquareMatrix(n,K) opposite? : (%, %) -> Boolean sample : () -> % zero? : % -> Boolean ?~=? : (%, %) -> Boolean ?*? : (NonNegativeInteger, %) -> % convert : % -> InputForm if SquareMatrix(n,K) has KONVERT(INFORM) elt : (%, DirectProduct(n,K)) -> K quadraticForm : SquareMatrix(n,K) -> % subtractIfCan : (%, %) -> Union(%,"failed")

fricas
parse(s:String):InputForm == ncParseFromString(s)$Lisp pretend InputForm
Function declaration parse : String -> InputForm has been added to workspace.
Type: Void
fricas
parse("Integer")
fricas
Compiling function parse with type String -> InputForm

\label{eq1}\hbox{\axiomType{Integer}\ }(1)
Type: InputForm

Test

fricas
qf := quadraticForm matrix [[1,2],[2,-1]]

\label{eq2}\left[ 
\begin{array}{cc}
1 & 2 
\
2 & - 1 
(2)
Type: QuadraticForm(2,Fraction(Integer))
fricas
qf::InputForm

\label{eq3}\left({quadraticForm \ {\left({squareMatrix \ {\left({matrix \ {\left({
\begin{array}{@{}l}
\displaystyle
construct \  \cdot 
\
\
\displaystyle
{\left({
\begin{array}{@{}l}
\displaystyle
construct \  \cdot 
\
\
\displaystyle
1 \  \cdot 
\
\
\displaystyle
2 
(3)
Type: InputForm
fricas
unparse %

\label{eq4}\verb#"quadraticForm(squareMatrix(matrix([[1,2],[2,-1]])))"#(4)
Type: String
fricas
parse %

\label{eq5}\left({quadraticForm \ {\left({squareMatrix \ {\left({matrix \ {\left({
\begin{array}{@{}l}
\displaystyle
construct \  \cdot 
\
\
\displaystyle
{\left({
\begin{array}{@{}l}
\displaystyle
construct \  \cdot 
\
\
\displaystyle
1 \  \cdot 
\
\
\displaystyle
2 
(5)
Type: InputForm
fricas
interpret(%)$INFORM1(QuadraticForm(2,Fraction Integer))

\label{eq6}\left[ 
\begin{array}{cc}
1 & 2 
\
2 & - 1 
(6)
Type: QuadraticForm(2,Fraction(Integer))