Okay, I really like the idea of factory functions and a single State class because (to the best of my knowledge) someone could do something like:
>>> ket = Ket('beta') >>> ket |beta> The Ket factory function would hand State the name as well as ket=True and return a State instance or something like that. I think this would be important for any kind of basic to midrange user's intuition (rather than just knowing what dictionary keys to pass to State). On Jul 17, 4:11 am, Øyvind Jensen <jensen.oyv...@gmail.com> wrote: > fr., 16.07.2010 kl. 13.25 -0700, skrev Brian Granger: > > > > > > > Hi, > > > Currently in secondquant and quantum we are making Bra and Ket > > subclasses of State: > > > class State(Expr): > > class Bra(State): > > class Ket(State): > > > the other option would be to make the ket/bra-ness an option: > > > bra = State('alpha', bra=True) > > > The advantage of this approach is that things like dagger can > > automatically know how to build the bra or ket from the ket or bra, > > without having to know what the appropriate class is. Also, the > > inheritance diagram for states is getting to be pretty messy when we > > introduce TensorProducts and this keeps it simple. We could still > > have Bra/Ket factory functions that build State instances with the > > right options. Thoughts? > > I don't see any problems with the approach you suggest, but your > question inspired me to think a bit about dual states. > > Another approach entirely is to consider bra states as *operators*, and > not states at all. I've seen some texts treating bras as operators > mapping kets to the complex plane (as opposed to the usual operators > mapping kets to kets.). I don't know exactly where that would lead with > respect to a Sympy implementation, but it could be worth to consider it. > I don't have strong opinions about this, I just wanted to share my > thoughts. > > Cheers, > > Øyvind > > > > > > > Brian > > > -- > > Brian E. Granger, Ph.D. > > Assistant Professor of Physics > > Cal Poly State University, San Luis Obispo > > bgran...@calpoly.edu > > elliso...@gmail.com -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sy...@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.