Here is a strange compilation:
--------------------------------------------------- t.spad -------
INT ==> Integer
NNI ==> NonNegativeInteger
GDMP ==> GeneralDistributedMultivariatePolynomial
)abbrev package FOO Foo
Foo() : with makeGDMP : List Symbol -> Type
== add
makeGDMP(vars : List Symbol) : Type ==
ppo := DirectProduct(# vars, NNI)
GDMP(vars, INT, ppo)
------------------------------------------------------------------
-->
...
$x:= ppo
$m:= (DirectProductCategory (# vars) (NonNegativeInteger))
$f:=
((((|ppo| #) (|vars| # #) (|#| #) (< #) ...)))
>> Apparent user error:
Cannot coerce ppo
of mode (DirectProductCategory (call LENGTH vars) (NonNegativeInteger))
to mode (DirectProductCategory (# vars) (NonNegativeInteger))
----------------------
(1) I discover that appending :: DirectProductCategory(# vars, NNI)
to the line of "ppo := "
makes it compiled (and hope that it will work correctly).
(2) Alternatively, inserting the lines
makeDP(vars : List Symbol) : OrderedSet ==
DirectProduct(# vars, NNI)
after " == add" in the initial program also makes it compiled!
The necessity of (1) looks a bit strange: why the compiler does not
find that ppo := DirectProduct(# vars, NNI) belongs to the needed
category?
And the effect of (2) looks totally enigmatic.
Regards,
------
Sergei
[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.