On 04/08/2006 06:19 PM, Francois Maltey wrote:
hello,

I'm trying to improve TRMANIP in manip.spad.

Well, since you are doing this privately without sharing your
understanding, there are not many on the list that can help.

By now you should have quite some understanding of all TRMANIP stuff.
I very much hope that in the process of trying to improve it you are
actually documenting the current SPAD code. If not than ALL your work is
in vain, because your "improvement" is actually NO improvement.

I know that sounds harsh, but if you are working on some code then the
first real improvement is that you document that code (or at least what
you understand of it) and let us all know.

You should open a new tla (or maybe now an svn) branch and work in
public. Don't fear that we consider your code poor or anything... most
of us don't know so much about the internals of the ALGEBRA code. We are
all eager to learn and I would say that YOU are now the expert for the
TRMANIP stuff. So let us know in a pamphlet style what you have learned.

I have looked into manip.spad and efstuc.spad. Since I haven't worked
with that packages I don't even understand what the parameters R and F
actually stand for. The documentation is really poor. If we want Axiom
to survive then it MUST be documented in an understandable way!!!

I want to know if the expressions have the Complex notion or not.

In this package I can add the function :

    ifComplex : F -> Boolean
    ifComplex (arg) ==
      (R is Complex Integer) or (R is Complex Fraction Integer) _
        or (R is Fraction Complex Integer)

the arg has no use, but with this arg I can test the function ifComplex
in the interpreter for a given expression.

Well, you have pointed to efstruc.spad. In there
(TrigonometricManipulations) I find a function

    complexForm: F -> Complex F
      ++ complexForm(f) returns \spad{[real f, imag f]}.

Since the parameters of
TrigonometricManipulations(R, F)

  R : Join(GcdDomain, OrderedSet, RetractableTo Integer,
           LinearlyExplicitRingOver Integer)
  F : Join(AlgebraicallyClosedField, TranscendentalFunctionCategory,
           FunctionSpace R)

 are pretty similar to TranscendentalManipulations(R, F)

  R : Join(OrderedSet, GcdDomain)
  F : Join(FunctionSpace R, TranscendentalFunctionCategory)

I would guess that with a bit of luck you can use it for your test.
(Simply test "not zero? imag f".) But maybe for that the argument

  F: AlgebraicallyClosedField

is decisive.

Yes, and now when I write this (which is without much knowledge about
actual implementations in Axiom) I somehow believe the improvement that
you want to add might already be (somewhere hidden, for example in
efstruc.spad) implemented in Axiom. Unfortunately nobody knows. :-(

Have you somewhere opened a WikiPage that explains your plan in clear
terms. Posting on axiom-dev is not always enough.

Best regards

Ralf



_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to