A while ago we had a discussion about restoring one? and zero? without
conclusion. I just ran into an example, which was at first surprising
to me, but may shed light on some issues:
Just for fun, I tried to compute a determinant of arithmetic function.
Here is what happened:
(22) -> m: DIRRING INT := (n:PI):INT +-> moebiusMu(n)
(22) [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...]
Type: DirichletRing(Integer)
(23) -> c := recip m
(23) [1,1,1,1,1,1,1,1,1,1,...]
Type: Union(DirichletRing(Integer),...)
(24) -> ma := matrix [[c^(i*j) for i in 1..5] for j in 1..5];
Type: Matrix(DirichletRing(Integer))
(25) -> determinant ma
Function: ?=? : (%,%) -> Boolean is missing from domain:
DirichletRing(Integer)
Internal Error
The function = with signature (Boolean)$$ is missing from domain
DirichletRing(Integer)
Well, of course I didn't implement equality - it's not possible. But
why would determinant need equality?
Well, it turns out it want's to check whether something is *possibly*
nonzero. Thus, it would be quite possible to compute the determinant if
we had a function zero? that is guaranteed to answer true only for 0,
and false otherwise.
I think it would be good to define and implement such a scheme. I'd
think that for quite a few domains we can answer some questions in a
useful way.
Of course, it is very important to fix the semantics and attach good
names to the operations. So perhaps possiblyNonZero? or guaranteedZero?
would be better. (Same thing for = and one?)
Martin
--
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.