Hi,

I have hard time understanding the idea behind atoms in sympy. Namely,
my problems is with `name` not being part of args. So, are the
following statements correct:

1. Being an atomic objects is completely equivalent to having empty
args (true in both directions!)

2. Atomic objects are exempted from the rule obj.func(*obj.args) == obj

3. Atomic objects are not exempted from the rule eval(srepr(obj)) == obj

4. For the sake of nice printing an object can have an optional
argument in its constructor (say `print_name`) that is used only in
the `_print` methods and it is not part of args

Number 4 needs more explanations: I have a base vector class. It is
completely defined by the index of the coordinate to which it
corresponds. So it will be something like
`BaseVector(2d_rectangular_coordinate_system_instance, 0)` being the
vector `e_x` as `x` corresponds to index 0. However I would like this
to be pprinted as `e_x`




By the way, just agreeing on the following rule:

x. Being an atomic objects is completely equivalent to having empty
args or not having args attribute at all

will permit having non-basic args without interfering with the
reconstruction of expression trees. Thus both Tuple and FiniteSet will
be able to contain non Basic objects. And the index in my example
above will be int and not Integer.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to