[ Charset ISO-8859-1 unsupported, converting... ]
> The following code:
>
> --
> K:=SparseMultivariatePolynomial(Fraction Integer,Symbol)
> E:=Expression K
> a:=a::Symbol::K; b:=b::Symbol::K; c:=c::Symbol::K;
> P:=P::Symbol::E; Q:=Q::Symbol::E; R:=R::Symbol::E;
> idot:=display(operator('dot,2), (x:List OutputForm):OutputForm +->
> hconcat([x.1,_{_\cdot_} ,x.2]));
> dot(A:E,B:E):E == (smaller?(A,B)=>idot(A,B);idot(B,A))
> dot(P, Q)=dot(Q,P)
> ihat:=display(operator('hat,2), (x:List OutputForm):OutputForm +->
> hconcat([x.1,_{_\wedge_} ,x.2]));
> hat(A:E,B:E):E == (smaller?(A,B)=>ihat(A,B);-ihat(B,A))
> hat(P, Q)=-hat(Q,P)
> simplifyHat:=rule
> dot(P, Q)^2-dot(P,P)*dot(Q,Q) == hat(P,Q)^2
> -dot(P,Q)^2+dot(P,P)*dot(Q,Q) == -hat(P,Q)^2
> dot(Q,R)*dot(P,R)-dot(R,R)*dot(P,Q) == dot(hat(R,Q),hat(R,P))
> --
>
> Triggers the bug:
>
> >> Error detected within library code:
> Unknown operator
>
> Here is a patch to correct the problem. The operative part is this change:
>
> - opquote := operator('applyQuote)$CommonOperators
> + opquote := operator('%quote)$CommonOperators
>
> Later in the code it checks for '%quote, not 'applyQuote.
>
> wsp...@debian:~/fricas-src/src/algebra$ svn diff fspace.spad.pamphlet
> Index: fspace.spad.pamphlet
> ===================================================================
> --- fspace.spad.pamphlet (revision 666)
> +++ fspace.spad.pamphlet (working copy)
> @@ -220,7 +220,7 @@
> operator op ==
> is?(op, PAREN) => oppren
> is?(op, BOX) => opbox
> - error "Unknown operator"
> + error concat("Unknown operator 1: ",string(name(op)))$String
>
> mainKernel x ==
> empty?(l := kernels x) => "failed"
> @@ -250,14 +250,14 @@
> s
>
> kernel(op:OP, args:List %) ==
> - not belong? op => error "Unknown operator"
> + not belong? op => error concat("Unknown operator 2:
> ",string(name(op)))$String
> okkernel(op, args)
>
> okkernel(op, l) ==
> kernel(op, l, 1 + reduce("max", [height f for f in l], 0))$K :: %
>
> elt(op:OP, args:List %) ==
> - not belong? op => error "Unknown operator"
> + not belong? op => error concat("Unknown operator 3:
> ",string(name(op)))$String
> ((u := arity op) case N) and (#args ~= u::N)
> => error "Wrong number of arguments"
> (v := evaluate(op,args)$BasicOperatorFunctions1(%)) case % => v::%
> @@ -556,7 +556,7 @@
> equaldiff : (K,K)->Boolean
> debugA: (List % ,List %,Boolean) -> Boolean
> opdiff := operator('%diff)$CommonOperators()
> - opquote := operator('applyQuote)$CommonOperators
> + opquote := operator('%quote)$CommonOperators
>
> ground? x == retractIfCan(x)@Union(R,"failed") case R
> ground x == retract x
> @@ -573,7 +573,7 @@
> operator op ==
> is?(op, '%diff) => opdiff
> is?(op, '%quote) => opquote
> - error "Unknown operator"
> + error concat("Unknown operator 4: ",string(name(op)))$String
>
> if R has ConvertibleTo InputForm then
> INP==>InputForm
> wsp...@debian:~/fricas-src/src/algebra$ svn diff fspace.spad.pamphlet
> > fspace-applyQuote.patch
>
> If there are no objections, I will commit this change.
>
Looks reasonable. But in op.spad.pamphlet we also have:
opquote := operator('applyQuote)$OP
I think we should change this one too.
--
Waldek Hebisch
[email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/fricas-devel?hl=en
-~----------~----~----~----~------~----~------~--~---