Hello everyone,

I was trying to fix an error which arises due to the missing attributes in 
MutableMatrix. Eg Matrix.eye(3).is_Piecewise fails but 
S(Matrix.eye(3)).is_Piecewise 
returns false which doesn't mean that S() turns it into an ImmutableMatrix.

These are attributes which are initialized as False in Basic class. 
is_Atom = False is_Symbol = False is_Dummy = False is_Wild = False 
is_Function = False is_Add = False is_Mul = False is_Pow = False is_Number 
= False is_Float = False is_Rational = False is_Integer = False 
is_NumberSymbol = False is_Order = False is_Derivative = False is_Piecewise 
= False is_Poly = False is_AlgebraicNumber = False is_Relational = False 
is_Equality = False is_Boolean = False is_Not = False is_Matrix = False 

One of the solutions which Christopher Smith  suggested was to define a 
BasicBase class in basic.py and migrate these attributes to that class. All 
other classes will be derived from this BasicBase class. I have implemented 
BasicBase class and made MatrixBase class to derive the same. It worked 
well!
Due to this change we may need to derive all other classes form this 
BasicBase class. We may also need to write a corresponding tests for the 
same for *everything* in SymPy all together may be a huge task.

What's your opinion about this change? Do you have a better solution for 
the same?


-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to