#9650: Adding support for differential forms
-----------------------------------+----------------------------------------
   Reporter:  jvkersch             |       Owner:  burcin                     
       Type:  enhancement          |      Status:  needs_work                 
   Priority:  major                |   Milestone:  sage-4.5.3                 
  Component:  symbolics            |    Keywords:  forms, functions, symbolics
     Author:  Joris Vankerschaver  |    Upstream:  N/A                        
   Reviewer:  Niles Johnson        |      Merged:                             
Work_issues:  diff()               |  
-----------------------------------+----------------------------------------

Comment(by niles):

 Replying to [comment:30 jason]:

 > I think it's fine to let the explicit conversion SR(q) work---by
 default, explicitly converting to SR just wraps the object as above, and I
 think is supported for every Sage object, whether or not it makes "sense".
 Do you see someplace that the conversion to an SR object is implicit?
 That would be a problem.
 >

 I agree with Jason; I usually think of `SR` as "the nothing ring", or "the
 everything ring", depending on your point of view.  The problem with
 `diff(q)` previously returning 0 has to do with `SR(q).vars()` being
 empty.  That is, when converting to `SR`, the variables of `q` are not
 noticed.  If you wanted to be overly fancy, you could try to implement
 something so that the variables of `q` are created and recognized when one
 does `SR(q)`, but this seems pretty pointless to me.

 Also, Joris, I completely agree on your decision to raise an error for
 additional arguments to `diff`.

 As for the method inheritance problem, I'm of two minds.  This problem has
 come up for me (and probably others) too, and stems from wanting to
 inherit most of the functionality of another class, but not all of the
 methods.  The technically correct thing to do is write a new master class,
 inherit from that, and rewrite the other class also inheriting from the
 new master class -- this will probably take a while, and has the potential
 to raise subtle bugs.  The laziest thing to do is ignore the problem --
 this will probably be fine for most users, and confusing for some.  A
 middle road is to go through all of the inherited methods and make sense
 out of the ones you can.  For those you can't, override the method to
 raise `NotImplementedError` or something similar, with a nice message
 about how this doesn't make sense for your class.

 For this ticket, I'd be in support of raising `NotImplementedError`s for
 all of the broken inherited methods, and writing a new ticket to implement
 those that can be.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9650#comment:32>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" 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/sage-trac?hl=en.

Reply via email to