On Wednesday December 21 2011 18:00:23 Garth N. Wells wrote: > What happens behind the scenes when for > > x = Vector(100) > > ones does > > x[:] > > ?
That depends if x[:] is on the lhs or on the rhs. If it is on the rhs a copy will be returned. This is a slice convention in Python. l0 = range(5) l1 = l[:] l1[0] = 1 The last statement will change l1 but not l0. I would expect the same for dolfin vectors. If it is on lhs and the rhs is either a GeneriVector or a scalar, x._assign(rhs) will be envoked. The relevant methods in la_post.i are: def __getslice__(...): def __setslize__(...): Johan > I've added GenericVector operator+= and -= for doubles, and would like > to be sure that this can be used from Python without unnecessary > copies being made. > > Garth > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : dolfin@lists.launchpad.net > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp