On 9/21/07, Alexander Schmolck <[EMAIL PROTECTED]> wrote: > > David Cournapeau <[EMAIL PROTECTED]> writes: > > > Alexander Schmolck wrote: > >> "Charles R Harris" <[EMAIL PROTECTED]> writes: > >> > >> > >>> The automatic handling of pointers for the default allocation type is > also > >>> convenient and makes it reasonable to have functions return matrices > and > >>> vectors. > >>> > >> > >> Hmm, I wonder whether I missed something when I read the manual. I > didn't see > >> anything in the docs that suggests that ublas matrices do COW, > reference > >> semantics or anything else to make C++'s horrible pass-by-value > semantics > >> bearable performancewise, so I return and pass in shared_ptr's to > matrices, > >> which is syntactically ugly but avoids the need to write a (reference > >> semantics) wrapper class for matrix. Am I missing some easier way to > >> efficiently return and pass large matrices? > >> > > If ublas is using expression template, shouldn't it alleviate somewhat > > this problem ? > > I don't think so, but then I'm hardly a C++ whizz. As far as I can tell > the > point of expression tempaltes is just to provide syntactic sugar so that > one > can write fairly complex in-place computations as a normal mathematical > expression. > > But say I want to pass a big matrix of datapoints to a classifier -- how > would > expression templates help here? Ublas does have various view objects, but > they're of limited usefulness, because they don't provide the same > functionality as the matrix class itself.
What's wrong with using references? void my_classifier(BigMatrix& datapoints) { ... } --bb
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion