"Antoine Hersen" <[EMAIL PROTECTED]> writes: > > > Also do someone know the intedent of the operator package > > > op.spad ? I have a lot of difficulty understanding Manuel > > > Bronstein works. > > > > > > > Check out section 9.58 of the Axiom book: > > > > 9.58 Operator > > Given any ring R, the ring of the Integer-linear operators > > over R is called Operator(R). To create an operator over R, > > first create a basic operator using the operation operator, > > and then convert it to Operator(R) for the R you want. > > Yes I had read that, I just do not see the big picture.
The idea is the following: There is a wide variety of mathematical operations one cannot always completely "evaluate", or "simplify", but nevertheless, one needs them in a domain like Expression Integer. These are called "CommonOperators" in axiom and are listed in the file op.spad, in the package CommonOperators. Some examples are rootOf, sin, pi, BesselJ, sum, product, factorial, ... Note that they do not share much structure, they even take a different number of arguments. Still, as much structure they have is described in the domain BasicOperator. Of course, you can create your own operators. For example, suppose that you have a recurrence together with the initial values. In some cases you will be able to find a "closed form" for the n-th term of the recurrence. Then it is easy to use it in Expression Integer. However, more often than not, you won't know a closed form, but still you want to use your recurrence as an expression. Maybe you want to state Take the n-th term of the recurrence and square it. To be able to do so, you introduce a new operator, for example, like I did on http://wiki.axiom-developer.org/RecurrenceRelationOperator In short (more documentation if you follow the link), you say oprecur := operator("rootOfRec"::Symbol)$BasicOperator to create a new operator called "rootOfRec". Then setProperty(oprecur, "%specialDisp", ddrec@(List F -> OutputForm) pretend None) to tell axiom how it should be displayed -- ddrec is the operation that does the display given the arguments of the operator. Finally, evaluate(oprecur, irecur)$BasicOperatorFunctions1(F) tells axiom which function to invoke when the operator should be "evaluated". Here, the function invoked is "irecur". I hope this helps, at least a little. Martin _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
