toon-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Toon-members] TooN TooN.h internal/allocator.hh internal/matr...


From: Tom Drummond
Subject: [Toon-members] TooN TooN.h internal/allocator.hh internal/matr...
Date: Fri, 06 Mar 2009 14:51:41 +0000

CVSROOT:        /cvsroot/toon
Module name:    TooN
Changes by:     Tom Drummond <twd20>    09/03/06 14:51:41

Modified files:
        .              : TooN.h 
        internal       : allocator.hh matrix.hh mbase.hh vbase.hh 
        test           : mat_test.cc 

Log message:
        Remove the distinction between RowMajor and ColMajor in generic matrix
        base.
        
        BROKEN BROKEN BORKEN BROKEN!!

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/TooN.h?cvsroot=toon&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/allocator.hh?cvsroot=toon&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/matrix.hh?cvsroot=toon&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/mbase.hh?cvsroot=toon&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/vbase.hh?cvsroot=toon&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/TooN/test/mat_test.cc?cvsroot=toon&r1=1.5&r2=1.6

Patches:
Index: TooN.h
===================================================================
RCS file: /cvsroot/toon/TooN/TooN.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- TooN.h      18 Feb 2009 20:29:10 -0000      1.22
+++ TooN.h      6 Mar 2009 14:51:41 -0000       1.23
@@ -25,7 +25,7 @@
 
        #endif
        
-       template<int Stride> struct Slice;
+       template<int RowStride, int ColStride> struct Slice;    
        template<int Size, class Precision, class Base> struct Vector;
        template<int Rows, int Cols, class Precision, class Base> struct Matrix;
        

Index: internal/allocator.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/allocator.hh,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- internal/allocator.hh       24 Feb 2009 17:47:51 -0000      1.14
+++ internal/allocator.hh       6 Mar 2009 14:51:41 -0000       1.15
@@ -330,8 +330,19 @@
 };
 
 
+template<int S> struct RowStrideHolder: public StrideHolder<S>
+{
+       RowStrideHolder(int i)
+               :StrideHolder<S>(i){}
+};
 
 
+template<int S> struct ColStrideHolder: public StrideHolder<S>
+{
+       ColStrideHolder(int i)
+               :StrideHolder<S>(i){}
+};
+
 
 
 

Index: internal/matrix.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/matrix.hh,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- internal/matrix.hh  6 Mar 2009 13:09:43 -0000       1.10
+++ internal/matrix.hh  6 Mar 2009 14:51:41 -0000       1.11
@@ -2,8 +2,11 @@
 class Matrix : public Layout::template Layout<Rows, Cols, Precision>
 {
 private:
-       using Layout::template Layout<Rows, Cols, Precision>::my_data;
+       //using Layout::template Layout<Rows, Cols, Precision>::my_data;
 public:
+
+       using Layout::template Layout<Rows, Cols, Precision>::my_data;
+
        using Layout::template Layout<Rows, Cols, Precision>::num_rows;
        using Layout::template Layout<Rows, Cols, Precision>::num_cols;
 

Index: internal/mbase.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/mbase.hh,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- internal/mbase.hh   6 Mar 2009 12:19:52 -0000       1.15
+++ internal/mbase.hh   6 Mar 2009 14:51:41 -0000       1.16
@@ -1,49 +1,26 @@
-//Slicing and etc...
-//SS = static size, static stride
-//DS = dynamic size, static stride  (can use DD)
-//Dl = dynamic size, linked stride: for RowMajor user instantiated dynamic 
matrices, stride==cols
-//DD = dynamic size, dynamic stride
-//SD = static size, dynamic stride.
-
-//SS.slice<>() -> SS
-//SS.slice()   -> DS
-//DS.slice<>() -> SS
-//DS.slice()   -> DS
-//Dc.slice<>() -> SD
-//Dl.silce()   -> DD
-//DD.slice<>() -> SD
-//DD.slice()   -> DD
-//SD.slice<>() -> SD
-//SD.slice()   -> DD
-
-
 // As usual, a positive integer means static and -1 means dynamic.
 // The new case is that for strides, -2 means that the stride is 
 // the same as num_cols/num_rows, which must be dynamically sized.
 
 template<int,int,class,class> class Matrix;
-template<int Rows, int Cols, class Precision, int Stride, class Mem> struct 
GenericRowMajor;
-template<int Rows, int Cols, class Precision, int Stride, class Mem> struct 
GenericColMajor;
-
 
 
////////////////////////////////////////////////////////////////////////////////
 //Closure used to acquire strides
 //-1 means dynamic stride
 //-2 means dynamic stride is tied to size for a normal matrix
-//-3 means dynamic stride is tied to size for a transposed matrix
-template<int Stride> struct Slice
+template<int RowStride, int ColStride> struct Slice
 {
-       struct RowMajor
-       {
-               template<int Rows, int Cols, class Precision> struct Layout: 
public GenericRowMajor<Rows, Cols, Precision, Stride, MatrixSlice<Rows, Cols, 
Precision> >
+       struct Layout{
+               template<int Rows, int Cols, class Precision> struct Layout: 
public GenericMBase<Rows, Cols, Precision, RowStride, ColStride, 
MatrixSlice<Rows, Cols, Precision> >
                {
                        //Optional constructors.
                        
                        Layout(Precision* p)
-                       
:GenericRowMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p)
+                               
:GenericMBase<Rows,Cols,Precision,RowStride,ColStride,MatrixSlice<Rows, Cols, 
Precision> >(p)
                        {
                        }
 
+#if 0
                        Layout(Precision* p, int stride)
                        
:GenericRowMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p, stride)
                        {
@@ -53,41 +30,13 @@
                        
:GenericRowMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p, rows, cols)
                        {
                        }
+#endif         
 
-                       Layout(Precision* p, int rows, int cols, int stride)
-                       
:GenericRowMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p, rows, cols, stride)
-                       {
-                       }
-
-               };
-       };
-
-       struct ColMajor
-       {
-               template<int Rows, int Cols, class Precision> struct Layout: 
public GenericColMajor<Rows, Cols, Precision, Stride, MatrixSlice<Rows, Cols, 
Precision> >
-               {
-                       //Optional constructors.
-                       
-                       Layout(Precision* p)
-                       
:GenericColMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p)
-                       {
-                       }
-
-                       Layout(Precision* p, int stride)
-                       
:GenericColMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p, stride)
-                       {
-                       }
-
-                       Layout(Precision* p, int rows, int cols)
-                       
:GenericColMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p, rows, cols)
-                       {
-                       }
 
-                       Layout(Precision* p, int rows, int cols, int stride)
-                       
:GenericColMajor<Rows,Cols,Precision,Stride,MatrixSlice<Rows, Cols, Precision> 
>(p, rows, cols, stride)
+                       Layout(Precision* p, int rows, int cols, int rowstride, 
int colstride)
+                               
:GenericMBase<Rows,Cols,Precision,RowStride,ColStride,MatrixSlice<Rows, Cols, 
Precision> >(p, rows, cols, rowstride, colstride)
                        {
                        }
-
                };
        };
 };
@@ -134,34 +83,54 @@
 // Row major matrix implementation
 //
 
-template<int Rows, int Cols, class Precision, int Stride, class Mem> struct 
GenericRowMajor: public Mem, StrideHolder<Stride>
+template<int Rows, int Cols, class Precision, int RowStride, int ColStride, 
class Mem> struct GenericMBase
+       : public Mem, 
+       RowStrideHolder<RowStride>,
+       ColStrideHolder<ColStride>
 {
        //Slices can never have tied strides
-       static const int SliceStride = Stride == -2?-1: Stride;
+       static const int SliceRowStride = RowStride == -2?-1: RowStride;
+       static const int SliceColStride = ColStride == -2?-1: ColStride;
 
-       int stride() const {
-               if(Stride == -2) //Normal tied stride
+       int rowstride() const {
+               if(RowStride == -2) { //Normal tied stride
                        return num_cols();
-               else
-                       return StrideHolder<Stride>::stride();
+               } else {
+                       return RowStrideHolder<RowStride>::stride();
+               }
+       }
+
+       int colstride() const {
+               if(ColStride == -2) { //Normal tied stride
+                       return num_row();
+               } else {
+                       return ColStrideHolder<ColStride>::stride();
+               }
        }
 
        //Optional constructors
-       GenericRowMajor(){}
+       GenericMBaser(){}
 
-       GenericRowMajor(Precision* p)
+       GenericMBase(Precision* p)
        :Mem(p) {}
 
+       // We think we don't need these any more
+#if 0
        GenericRowMajor(Precision* p, int s)
        :Mem(p),StrideHolder<Stride>(s) {}
 
        GenericRowMajor(Precision* p, int r, int c)
        :Mem(p, r, c) {}
+#endif
 
-       GenericRowMajor(Precision* p, int r, int c, int stride)
-       :Mem(p, r, c),StrideHolder<Stride>(stride) {}
 
-       GenericRowMajor(int r, int c)
+       GenericMBase(Precision* p, int r, int c, int rowstride, int colstride)
+       :Mem(p, r, c),
+        RowStrideHolder<RowStride>(rowstride) 
+        ColStrideHolder<ColStride>(colstride) 
+       {}
+
+       GenericMBase(int r, int c)
        :Mem(r, c) {}
 
        using Mem::my_data;
@@ -169,63 +138,65 @@
        using Mem::num_rows;
 
        Precision& operator()(int r, int c){
-               return my_data[r*stride() + c];
+               return my_data[r*rowstride() + c*colstride()];
        }
 
        const Precision& operator()(int r, int c) const {
-               return my_data[r*stride() + c];
+               return my_data[r*rowstride() + c*colstride()];
        }
 
-
-       typedef Vector<Cols, Precision, SliceVBase<1> > Vec;
+       // this is the type of vector obtained by [ ]
+       typedef Vector<Cols, Precision, SliceVBase<SliceColStride> > Vec;
        
        Vec operator[](int r) {
                Internal::check_index(num_rows(), r);
-               return Vec(my_data + stride()* r, num_cols(), 1, Slicing());
+               return Vec(my_data + rowstride()* r, num_cols(), colstride(), 
Slicing());
        }
 
        const Vec operator[](int r) const {
                Internal::check_index(num_rows(), r);
-               return Vec(const_cast<Precision*>(my_data + stride()* r), 
num_cols(), 1, Slicing());
+               return Vec(const_cast<Precision*>(my_data + rowstride()* r), 
num_cols(), colstride(), Slicing());
        }
 
+
+
        template<int Rstart, int Cstart, int Rlength, int Clength>
-       Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::RowMajor> slice()
+       Matrix<Rlength, Clength, Precision, typename 
Slice<SliceRowStride,SliceColStride> > slice()
        {
                //Always pass the stride as a run-time parameter. It will be 
ignored
                //by SliceHolder (above) if it is statically determined.
                Internal::CheckStaticSlice<Rows, Rstart, 
Rlength>::check(num_rows());
                Internal::CheckStaticSlice<Cols, Cstart, 
Clength>::check(num_cols());
-               return Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::RowMajor>(my_data+stride()*Rstart + Cstart, stride(), 
Slicing());
+               return Matrix<Rlength, Clength, Precision, typename 
Slice<SliceRowStride,SliceColStride>::Layout>(my_data+rowstride()*Rstart + 
colstride()*Cstart, rowstride(), colstride(), Slicing());
        }
 
        template<int Rstart, int Cstart, int Rlength, int Clength>
-       const Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::RowMajor> slice() const
+       const Matrix<Rlength, Clength, Precision, typename 
Slice<SliceRowStride,SliceColStride>::Layout> slice() const
        {
                Internal::CheckStaticSlice<Rows, Rstart, 
Rlength>::check(num_rows());
                Internal::CheckStaticSlice<Cols, Cstart, 
Clength>::check(num_cols());
-               return Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::RowMajor>(const_cast<Precision*>(my_data+stride()*Rstart + 
Cstart), stride(), Slicing());
+               return Matrix<Rlength, Clength, Precision, typename 
Slice<SliceRowStride,SliceColStride>::Layout>(const_cast<Precision*>(my_data+rowstride()*Rstart
 + colstride()*Cstart), rowstride(), colstride(), Slicing());
        }
 
-       Matrix<-1, -1, Precision, typename Slice<SliceStride>::RowMajor > 
slice(int rs, int cs, int rl, int cl){
+       Matrix<-1, -1, Precision, typename 
Slice<SliceRowStride,SliceColStride>::RowMajor > slice(int rs, int cs, int rl, 
int cl){
                Internal::CheckDynamicSlice::check(num_rows(), rs, rl);
                Internal::CheckDynamicSlice::check(num_cols(), cs, cl);
-               return Matrix<-1, -1, Precision, typename 
Slice<SliceStride>::RowMajor >(my_data+stride()*rs +cs, rl, cl, stride(), 
Slicing());
+               return Matrix<-1, -1, Precision, typename 
Slice<SliceRowStride,SliceColStride>::RowMajor >(my_data+rowstride()*rs 
+colstride()*cs, rl, cl, rowstride(), colstride(), Slicing());
        }
 
-       const Matrix<-1, -1, Precision, typename Slice<SliceStride>::RowMajor > 
slice(int rs, int cs, int rl, int cl) const {
+       const Matrix<-1, -1, Precision, typename 
Slice<SliceRowStride,SliceColStride>::RowMajor > slice(int rs, int cs, int rl, 
int cl) const {
                Internal::CheckDynamicSlice::check(num_rows(), rs, rl);
                Internal::CheckDynamicSlice::check(num_cols(), cs, cl);
-               return Matrix<-1, -1, Precision, typename 
Slice<SliceStride>::RowMajor >(const_cast<Precision*>(my_data+stride()*rs +cs), 
rl, cl, stride(), Slicing());
+               return Matrix<-1, -1, Precision, typename 
Slice<SliceRowStride,SliceColStride>::RowMajor 
>(const_cast<Precision*>(my_data+stride()*rs +colstride()*cs), rl, cl, 
rowstride(), colstride(), Slicing());
        }
 
 
-       Matrix<Cols, Rows, Precision, typename Slice<Stride>::ColMajor> T(){
-               return Matrix<Cols, Rows, Precision, typename 
Slice<Stride>::ColMajor>(my_data, num_cols(), num_rows(), stride(), Slicing());
+       Matrix<Cols, Rows, Precision, typename 
Slice<SliceColStride,SliceRowStride>::Layout> T(){
+               return Matrix<Cols, Rows, Precision, typename 
Slice<SliceColStride,SliceRowStride>::Layout>(my_data, num_cols(), num_rows(), 
colstride(), rowstride(), Slicing());
        }
 
-       const Matrix<Cols, Rows, Precision, typename Slice<Stride>::ColMajor> 
T() const{
-               return Matrix<Cols, Rows, Precision, typename 
Slice<Stride>::ColMajor>(const_cast<Precision*>(my_data), num_cols(), 
num_rows(), stride(), Slicing());
+       const Matrix<Cols, Rows, Precision, typename 
Slice<SliceColStride,SliceRowStride>::Layout> T() const{
+               return Matrix<Cols, Rows, Precision, typename 
Slice<SliceColStride,SliceRowStride>::Layout>(const_cast<Precision*>(my_data), 
num_cols(), num_rows(), colstride(), rowstride(), Slicing());
        }
 };
 
@@ -234,104 +205,3 @@
 
 
 
-////////////////////////////////////////////////////////////////////////////////
-//
-// Column major matrix implementation
-//
-
-template<int Rows, int Cols, class Precision, int Stride, class Mem> struct 
GenericColMajor: public Mem, public StrideHolder<Stride>
-{
-       //Slices can never have tied strides
-       static const int SliceStride = Stride == -2?-1: Stride;
-
-       int stride() const {
-               if(Stride == -2) //Normal tied stride
-                       return num_rows();
-               else
-                       return StrideHolder<Stride>::stride();
-       }
-
-
-       //Optional constructors
-       
-       GenericColMajor(){}
-
-       GenericColMajor(Precision* p)
-       :Mem(p) {}
-
-       GenericColMajor(Precision* p, int s)
-       :Mem(p),StrideHolder<Stride>(s) {}
-
-       GenericColMajor(Precision* p, int r, int c)
-       :Mem(p, r, c) {}
-
-       GenericColMajor(Precision* p, int r, int c, int stride)
-       :Mem(p, r, c),StrideHolder<Stride>(stride) {}
-
-       GenericColMajor(int r, int c)
-       :Mem(r, c) {}
-
-       using Mem::my_data;
-       using Mem::num_cols;
-       using Mem::num_rows;
-
-       Precision& operator()(int r, int c){
-               return my_data[c*stride() + r];
-       }
-
-       const Precision& operator()(int r, int c) const {
-               return my_data[c*stride() + r];
-       }
-       
-       typedef Vector<Cols, Precision, SliceVBase<SliceStride> > Vec;
-       Vec operator[](int r) {
-               Internal::check_index(num_rows(), r);
-               return Vec(my_data + r, num_cols(), stride(), Slicing());
-       }
-
-       const Vec operator[](int r) const {
-               Internal::check_index(num_rows(), r);
-               return Vec(const_cast<Precision*>(my_data + r), num_cols(), 
stride(), Slicing());
-       }
-
-       template<int Rstart, int Cstart, int Rlength, int Clength>
-       Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::ColMajor> slice()
-       {
-               Internal::CheckStaticSlice<Rows, Rstart, 
Rlength>::check(num_rows());
-               Internal::CheckStaticSlice<Cols, Cstart, 
Clength>::check(num_cols());
-               //Always pass the stride as a run-time parameter. It will be 
ignored
-               //by SliceHolder (above) if it is statically determined.
-               return Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::ColMajor>(my_data+Rstart + stride()*Cstart, stride(), 
Slicing());
-       }
-
-       template<int Rstart, int Cstart, int Rlength, int Clength>
-       const Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::ColMajor> slice() const
-       {
-               Internal::CheckStaticSlice<Rows, Rstart, 
Rlength>::check(num_rows());
-               Internal::CheckStaticSlice<Cols, Cstart, 
Clength>::check(num_cols());
-               return Matrix<Rlength, Clength, Precision, typename 
Slice<SliceStride>::ColMajor>(const_cast<Precision*>(my_data+Rstart + 
stride()*Cstart), stride(), Slicing());
-       }
-       
-       Matrix<-1, -1, Precision, typename Slice<SliceStride>::ColMajor > 
slice(int rs, int cs, int rl, int cl){
-               Internal::CheckDynamicSlice::check(num_rows(), rs, rl);
-               Internal::CheckDynamicSlice::check(num_cols(), cs, cl);
-               return Matrix<-1, -1, Precision, typename 
Slice<SliceStride>::ColMajor >(my_data+rs +stride()*cs, rl, cl, stride(), 
Slicing());
-       }
-
-       const Matrix<-1, -1, Precision, typename Slice<SliceStride>::ColMajor > 
slice(int rs, int cs, int rl, int cl)const{
-               Internal::CheckDynamicSlice::check(num_rows(), rs, rl);
-               Internal::CheckDynamicSlice::check(num_cols(), cs, cl);
-               return Matrix<-1, -1, Precision, typename 
Slice<SliceStride>::ColMajor >(const_cast<Precision*>(my_data+rs +stride()*cs), 
rl, cl, stride(), Slicing());
-       }
-
-       Matrix<Cols, Rows, Precision, typename Slice<Stride>::RowMajor> T(){
-               return Matrix<Cols, Rows, Precision, typename 
Slice<Stride>::RowMajor>(my_data, num_cols(), num_rows(), stride(), Slicing());
-       }
-
-       const Matrix<Cols, Rows, Precision, typename Slice<Stride>::RowMajor> 
T() const {
-               return Matrix<Cols, Rows, Precision, typename 
Slice<Stride>::RowMajor>(const_cast<Precision*>(my_data), num_cols(), 
num_rows(), stride(), Slicing());
-       }
-};
-
-
-

Index: internal/vbase.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/vbase.hh,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- internal/vbase.hh   6 Mar 2009 12:19:52 -0000       1.15
+++ internal/vbase.hh   6 Mar 2009 14:51:41 -0000       1.16
@@ -110,19 +110,19 @@
                return Vector<-1, Precision, SliceVBase<Stride> 
>(const_cast<Precision*>(my_data + stride()*start), length, stride(), 
Slicing());
        }
 
-       const Matrix<1, Size, Precision, typename Slice<Stride>::ColMajor> 
as_row() const{
-               return Matrix<1, Size, Precision, typename 
Slice<Stride>::ColMajor>(const_cast<Precision*>(my_data), 1, Size, stride(), 
Slicing());
+       const Matrix<1, Size, Precision, typename Slice<1,Stride>::Layout> 
as_row() const{
+               return Matrix<1, Size, Precision, typename 
Slice<1,Stride>::Layout>(const_cast<Precision*>(my_data), 1, Size, 1, stride(), 
Slicing());
        }
 
-       Matrix<1, Size, Precision, typename Slice<Stride>::ColMajor> as_row(){
-               return Matrix<1, Size, Precision, typename 
Slice<Stride>::ColMajor>(my_data, 1, Size, stride(), Slicing());
+       Matrix<1, Size, Precision, typename Slice<1,Stride>::Layout> as_row(){
+               return Matrix<1, Size, Precision, typename 
Slice<1,Stride>::Layout>(my_data, 1, Size, 1, stride(), Slicing());
        }
 
-       const Matrix<Size, 1, Precision, typename Slice<Stride>::RowMajor> 
as_col() const{
-               return Matrix<Size, 1, Precision, typename 
Slice<Stride>::RowMajor>(const_cast<Precision*>(my_data), Size, 1, stride(), 
Slicing());
+       const Matrix<Size, 1, Precision, typename Slice<Stride,1>::Layout> 
as_col() const{
+               return Matrix<Size, 1, Precision, typename 
Slice<Stride,1>::Layout>(const_cast<Precision*>(my_data), Size, 1, stride(), 1, 
Slicing());
        }
 
-       Matrix<Size, 1, Precision, typename Slice<Stride>::RowMajor> as_col(){
-               return Matrix<Size, 1, Precision, typename 
Slice<Stride>::RowMajor>(my_data, Size, 1, stride(), Slicing());
+       Matrix<Size, 1, Precision, typename Slice<Stride,1>::Layout> as_col(){
+               return Matrix<Size, 1, Precision, typename 
Slice<Stride,1>::Layout>(my_data, Size, 1, stride(), 1, Slicing());
        }
 };

Index: test/mat_test.cc
===================================================================
RCS file: /cvsroot/toon/TooN/test/mat_test.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- test/mat_test.cc    24 Feb 2009 18:16:12 -0000      1.5
+++ test/mat_test.cc    6 Mar 2009 14:51:41 -0000       1.6
@@ -53,6 +53,9 @@
        Matrix<3,4> m;  
        set(m);
        foo(m);
+       
+       cout << m.my_data << endl;
+
        Matrix<3,4,double,ColMajor> n;  
        set(n);
        foo(n);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]