Re: matrix<dense1D<double> > possible for representing rank-3 tensor?

Janusz opechowski <[email protected]> Thu, 15 Dec 2005 11:01:55 +0000 (GMT)
Newsgroups gmane.comp.lib.mtl.devel
Message-ID <[email protected]>
The maxim sounds good.









--- Peter Gottschling <[email protected]> wrote:

> Hello Johan,
> 
> There are tensors implemented in Blitz++
> (http://www.oonumerics.org/ 
> blitz/).   I suppose that you can write your
> algorithm in a better  
> way there then with a MTL hack.  BTW, I don't say
> this to scare you  
> away for the rest of my life.
> 
> Cheers,
> Peter
> 
> On Dec 14, 2005, at 9:54 AM, Johan Seland wrote:
> 
> > Hello all MTLers.
> >
> > I am trying to implement a change of basis
> algorithm from trivariate
> > power basis to trivariate Bernstein basis. I have
> it all up and
> > running in Mathematica, so I think my algorithm is
> sound.
> >
> > However, it involves a rank-3 tensor, which I had
> hoped I could
> > represent in MTL using matrix<dense1D<double>,
> rectangle<>,
> > dense<internal>, column_major>?
> >
> > Is this a viable option, or would I run into all
> sorts of trouble?
> > (I know I can't directly expect MTL to handle
> Matrix.Tensor products,
> > and I am prepared to write these myself using
> slices (ie. MTL
> > 2D-matrices) )
> >
> > I am currently having  problems passing references
> to this beast
> > around. It seems like the caller always segfaults
> after my
> > initialization function of this beast has
> returned.
> >
> > What I am trying to do is along these lines:
> >
> > template<typename T>
> > T
> > torus( T& A) {
> >     A.resize( 5, 5 );
> >
> >     for ( typename T::iterator i = A.begin();
> >         i != A.end(); ++i )
> >         for ( typename T::OneD::iterator j =
> (*i).begin();
> >             j != (*i).end(); ++j ) {
> >                 (*j).resize( 5 );
> >             }
> >         A[.][.][.] = ...
> >         .
> >         .
> >     }
> >
> > calculateM() {
> >     matrix<dense1D<double>, rectangle<>,
> dense<internal>,  
> > column_major> A;
> >     torus(A);
> >     <-- SEGFAULTS here.
> > }
> >
> > --
> > Help a man with his math problems and you get him
> off your back for  
> > a day.
> > Teach a man math, and you scare him off for the
> rest of your life.
> >
> > Regards Johan Seland
> > PhD Student
> > Center of Mathematics for Applications
> > University of Oslo
> >
> > _______________________________________________
> > This list is archived at
> http://www.osl.iu.edu/MailArchives/mtl-devel/
> >
> 
> ------------
> Peter Gottschling
> Research Associate
> Open Systems Laboratory
> Indiana University
> 301i Lindley Hall
> Bloomington, IN 47405
> Tel.: +1 812 855-8898   Fax: +1 812 856 0853
> http://www.osl.iu.edu/~pgottsch
> 
> 
> _______________________________________________
> This list is archived at
> http://www.osl.iu.edu/MailArchives/mtl-devel/
> 


Send instant messages to your online friends http://uk.messenger.yahoo.com 
_______________________________________________
This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/