What is primcyclo and cyclotomic?



>>>>> "Richard" == Richard Fateman <fateman at cs.berkeley.edu> writes:

    Richard> Before ever touching the guts of a polynomial in CRE form
    Richard> it is essential that each of those gensyms be set to a value

    Richard> (setf #:g1234  1)
    Richard> (setf #:g345    2)

    Richard> and pointergp is supposed to compare these to see whether
    Richard> x or y is "more main".

    Richard> Now you can't actually use setf in that way because the
    Richard> nature of gensyms is that they are not interned.  But if (valget a)
    Richard> where a is one of those gensyms returns nil,
    Richard> then someone has forgotten to initialize something.

That's probably the problem.  primcyclo binds *g* to nil, and
cyclotomic pushes *g* to the front of the CRE form.  And that doesn't
work so well.  As you say, I guess primcyclo should bind *g* to a
gensym, and give it a value.

    Richard> Probably this is more than you wanted to know, and less
    Richard> than you need to know to fix the bug :(

Actually, I find this kind of historical information very
interesting.  I had assumed pointergp meant something like
pointer-greater-p, and you've confirmed that.  But the name is
confusing now because the implementation doesn't really have anything
to do with pointers. :-)

Ray