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 sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to