[GiNaC-devel] Custom power evaluation

Vladimir Kisil kisilv at maths.leeds.ac.uk
Mon Oct 30 19:05:52 CET 2006


		Dear Alexei,

		It is a pity that this discussion is going round by round over the
  same path and we all reiterate the previous arguments.

>>>>> "ASh" == Sheplyakov Alexei <varg at theor.jinr.ru> writes:

    ASh> What if someone else wants to insert another "pair of wires" to
    ASh> implement another weird feature? 

	Once more: the purpose of this wires *to avoid* implementation of
  weird features in the GiNaC kernel. For any such a request to add
  anything to the core GiNaC with special property with respect to
  power::eval() will follow a polite answer: "You can do it yourself in
  your own derived class."

    ASh> It depends. E.g., for someone who hardly ever uses complex
    ASh> numbers this is not a big deal. On the other hand,

	Anyone who hardly use any differential geometry will vote for
  exclusion of all "indexed" part from GiNaC, so....

    ASh> This sounds like modular arithmetics (in Z_3, to be more
    ASh> specific).  It would be nice if GiNaC had support of such a
    ASh> thing. CLN has modular integers, so _probably_ it is possible
    ASh> to do such calculations in more natural way (so that
    ASh> simplification of this kind are handled by CLN, just as I^2 ->
    ASh> -1).

	There are also symbols taking only values -1, 0, 1, with the
  property s^3=s, there are imaginary units for double and dual number
  (e^2=1, \epsilon^2=0), etc. Adding all of them separately "in a more
  natural way" either to GiNaC or CLN will really do it very cumbersome.

    ASh> IMHO, GiNaC's purpose is somewhat inverse: not to give as much
    ASh> freedom as possible, but to restrict the freedom to do some
    ASh> specific things effectively.  BTW, other tools used by
    ASh> [particle] physicists (e.g. FORM) are even more restrictive,
    ASh> and there are very few complaints (if any) about that.

	Probably my real problem is that I am not a "[particle] physicist" ;-) 
   I was also mislead by the phrase from the GiNaC tutorial:

   "we...tried to fill the gap by writing GiNaC. But of course its
  applications are in no way restricted to theoretical physics." 

    ASh> The main point is not validity of those rules. Your
    ASh> implementation complicates things even for those who are not
    ASh> going to use any of such rules.

	Untrue. Anyone who do not need them may safely assume that they do
  not exist at all. Virtual methods basic::eval_power_base() and
  basic::eval_power_exponent() are not ever called from the core
  GiNaC. And they will not be ever called by any user code unless the
  user will take specific steps to call them.
 
    ASh>  Please stop adding more methods to core classes

	Alright, assuming no second opinion exists.

	Best wishes,
	Vladimir
-- 
Vladimir V. Kisil     email: kisilv at maths.leeds.ac.uk
--                      www: http://maths.leeds.ac.uk/~kisilv/


More information about the GiNaC-devel mailing list