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