toon-members
[Top][All Lists]
Advanced

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

[Toon-members] TooN TODO TooN.h internal/vbase.hh test/test3.cc


From: Edward Rosten
Subject: [Toon-members] TooN TODO TooN.h internal/vbase.hh test/test3.cc
Date: Wed, 18 Feb 2009 20:29:11 +0000

CVSROOT:        /cvsroot/toon
Module name:    TooN
Changes by:     Edward Rosten <edrosten>        09/02/18 20:29:11

Modified files:
        .              : TODO TooN.h 
        internal       : vbase.hh 
        test           : test3.cc 

Log message:
        .as_row() and .as_col()

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/TODO?cvsroot=toon&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/TooN/TooN.h?cvsroot=toon&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/vbase.hh?cvsroot=toon&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/TooN/test/test3.cc?cvsroot=toon&r1=1.3&r2=1.4

Patches:
Index: TODO
===================================================================
RCS file: /cvsroot/toon/TooN/TODO,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- TODO        18 Feb 2009 20:02:38 -0000      1.8
+++ TODO        18 Feb 2009 20:29:10 -0000      1.9
@@ -1,5 +1,5 @@
-.as_row() and .as_col() for vectors
 BLAS 
 helpers.h
 fix up decompositions.
 iterators
+half-dynamic Matrices (most (all??) of the work is in allocator.hh)

Index: TooN.h
===================================================================
RCS file: /cvsroot/toon/TooN/TooN.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- TooN.h      17 Feb 2009 17:11:07 -0000      1.21
+++ TooN.h      18 Feb 2009 20:29:10 -0000      1.22
@@ -25,6 +25,10 @@
 
        #endif
        
+       template<int Stride> struct Slice;
+       template<int Size, class Precision, class Base> struct Vector;
+       template<int Rows, int Cols, class Precision, class Base> struct Matrix;
+       
        #include <TooN/internal/allocator.hh>
 
        #include <TooN/internal/size_mismatch.hh>

Index: internal/vbase.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/vbase.hh,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- internal/vbase.hh   11 Feb 2009 18:04:25 -0000      1.11
+++ internal/vbase.hh   18 Feb 2009 20:29:10 -0000      1.12
@@ -99,4 +99,20 @@
                Internal::CheckDynamicSlice::check(size(), start, length);
                return Vector<-1, Precision, SliceVBase<-1, Stride, Precision> 
>(const_cast<Precision*>(my_data + stride()*start), length, stride(), 
Slicing());
        }
+
+       const Matrix<(Size==-1?-1:1), Size, Precision, typename 
Slice<Stride>::ColMajor> as_row() const{
+               return Matrix<(Size==-1?-1:1), Size, Precision, typename 
Slice<Stride>::ColMajor>(const_cast<Precision*>(my_data), 1, Size, stride(), 
Slicing());
+       }
+
+       Matrix<(Size==-1?-1:1), Size, Precision, typename 
Slice<Stride>::ColMajor> as_row(){
+               return Matrix<(Size==-1?-1:1), Size, Precision, typename 
Slice<Stride>::ColMajor>(my_data, 1, Size, stride(), Slicing());
+       }
+
+       const Matrix<Size, (Size==-1?-1:1), Precision, typename 
Slice<Stride>::RowMajor> as_col() const{
+               return Matrix<Size, (Size==-1?-1:1), Precision, typename 
Slice<Stride>::RowMajor>(const_cast<Precision*>(my_data), Size, 1, stride(), 
Slicing());
+       }
+
+       Matrix<Size, (Size==-1?-1:1), Precision, typename 
Slice<Stride>::RowMajor> as_col(){
+               return Matrix<Size, (Size==-1?-1:1), Precision, typename 
Slice<Stride>::RowMajor>(my_data, Size, 1, stride(), Slicing());
+       }
 };

Index: test/test3.cc
===================================================================
RCS file: /cvsroot/toon/TooN/test/test3.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- test/test3.cc       18 Feb 2009 20:02:39 -0000      1.3
+++ test/test3.cc       18 Feb 2009 20:29:10 -0000      1.4
@@ -40,5 +40,8 @@
        cout << m3<<endl;
        cout << m4<<endl;
        cout << m3*m4;
+
+       
+       cout << makeVector(1,2).as_col() * makeVector(3,4).as_row() << endl;
 }
 




reply via email to

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