Hi Andrey,
Just to clarify, I only wanted to subclass Cones, but not Fans. The
fan is a container class for cones and that doesn't change. In
particular, I never felt the need to add any functionality at that
level in my code.
As for sharing of cached data, I think a clearer way would be to
define a copy method in addition to the creation in the factory. Then
we just have to extend RationalPolyhedralFan to
* create new cone if cone was specified by point indices, and
* copy if the cone is already a cone of a (different) fan (that is,
c.is_Cone()==True)
For example:
class Cone_of_fan_Factory(SageObject):
def new(self, fan_rays, fan_generating_cones, fan):
return Cone_of_fan(fan_rays, fan_generating_cones, fan)
def copy(self, cone):
new_cone = copy(cone)
cone.__class__ = Cone_of_fan
I think your timeline looks good!
Best wishes,
Volker
--
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org