[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Toon-members] TooN/internal mbase.hh vbase.hh
From: |
Tom Drummond |
Subject: |
[Toon-members] TooN/internal mbase.hh vbase.hh |
Date: |
Fri, 06 Mar 2009 16:52:52 +0000 |
CVSROOT: /cvsroot/toon
Module name: TooN
Changes by: Tom Drummond <twd20> 09/03/06 16:52:52
Modified files:
internal : mbase.hh vbase.hh
Log message:
simplified struct slice in mbase and resolved consequences
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/mbase.hh?cvsroot=toon&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/vbase.hh?cvsroot=toon&r1=1.18&r2=1.19
Patches:
Index: mbase.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/mbase.hh,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- mbase.hh 6 Mar 2009 15:55:44 -0000 1.19
+++ mbase.hh 6 Mar 2009 16:52:52 -0000 1.20
@@ -12,9 +12,7 @@
//-2 means dynamic stride is tied to size for a normal matrix
template<int RowStride, int ColStride> struct Slice
{
- //This can't be called Layout since apparently Layout::Layout is not
- //allowed. Can anyone think of a better name than Base?
- struct Base{
+
template<int Rows, int Cols, class Precision> struct Layout:
public GenericMBase<Rows, Cols, Precision, RowStride, ColStride,
MatrixSlice<Rows, Cols, Precision> >
{
//Optional constructors.
@@ -28,7 +26,6 @@
{
}
};
- };
};
@@ -100,42 +97,42 @@
template<int Rstart, int Cstart, int Rlength, int Clength>
- Matrix<Rlength, Clength, Precision, typename
Slice<SliceRowStride,SliceColStride>::Base > slice()
+ Matrix<Rlength, Clength, Precision,
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<SliceRowStride,SliceColStride>::Base>(my_data+rowstride()*Rstart +
colstride()*Cstart, rowstride(), colstride(), Slicing());
+ return Matrix<Rlength, Clength, Precision,
Slice<SliceRowStride,SliceColStride> >(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<SliceRowStride,SliceColStride>::Base> slice() const
+ const Matrix<Rlength, Clength, Precision,
Slice<SliceRowStride,SliceColStride> > 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<SliceRowStride,SliceColStride>::Base>(const_cast<Precision*>(my_data+rowstride()*Rstart
+ colstride()*Cstart), rowstride(), colstride(), Slicing());
+ return Matrix<Rlength, Clength, Precision,
Slice<SliceRowStride,SliceColStride>
>(const_cast<Precision*>(my_data+rowstride()*Rstart + colstride()*Cstart),
rowstride(), colstride(), Slicing());
}
- Matrix<-1, -1, Precision, typename
Slice<SliceRowStride,SliceColStride>::Base > slice(int rs, int cs, int rl, int
cl){
+ Matrix<-1, -1, Precision, Slice<SliceRowStride,SliceColStride> >
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<SliceRowStride,SliceColStride>::Base >(my_data+rowstride()*rs
+colstride()*cs, rl, cl, rowstride(), colstride(), Slicing());
+ return Matrix<-1, -1, Precision,
Slice<SliceRowStride,SliceColStride> >(my_data+rowstride()*rs +colstride()*cs,
rl, cl, rowstride(), colstride(), Slicing());
}
- const Matrix<-1, -1, Precision, typename
Slice<SliceRowStride,SliceColStride>::Base > slice(int rs, int cs, int rl, int
cl) const {
+ const Matrix<-1, -1, Precision, Slice<SliceRowStride,SliceColStride> >
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<SliceRowStride,SliceColStride>::Base
>(const_cast<Precision*>(my_data+rowstride()*rs +colstride()*cs), rl, cl,
rowstride(), colstride(), Slicing());
+ return Matrix<-1, -1, Precision,
Slice<SliceRowStride,SliceColStride>
>(const_cast<Precision*>(my_data+rowstride()*rs +colstride()*cs), rl, cl,
rowstride(), colstride(), Slicing());
}
- Matrix<Cols, Rows, Precision, typename
Slice<SliceColStride,SliceRowStride>::Base> T(){
- return Matrix<Cols, Rows, Precision, typename
Slice<SliceColStride,SliceRowStride>::Base>(my_data, num_cols(), num_rows(),
colstride(), rowstride(), Slicing());
+ Matrix<Cols, Rows, Precision, Slice<SliceColStride,SliceRowStride> >
T(){
+ return Matrix<Cols, Rows, Precision,
Slice<SliceColStride,SliceRowStride> >(my_data, num_cols(), num_rows(),
colstride(), rowstride(), Slicing());
}
- const Matrix<Cols, Rows, Precision, typename
Slice<SliceColStride,SliceRowStride>::Base> T() const{
- return Matrix<Cols, Rows, Precision, typename
Slice<SliceColStride,SliceRowStride>::Base>(const_cast<Precision*>(my_data),
num_cols(), num_rows(), colstride(), rowstride(), Slicing());
+ const Matrix<Cols, Rows, Precision,
Slice<SliceColStride,SliceRowStride> > T() const{
+ return Matrix<Cols, Rows, Precision,
Slice<SliceColStride,SliceRowStride> >(const_cast<Precision*>(my_data),
num_cols(), num_rows(), colstride(), rowstride(), Slicing());
}
};
Index: vbase.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/vbase.hh,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- vbase.hh 6 Mar 2009 15:34:33 -0000 1.18
+++ vbase.hh 6 Mar 2009 16:52:52 -0000 1.19
@@ -109,20 +109,20 @@
return Vector<-1, Precision, SliceVBase<Stride>
>(const_cast<Precision*>(my_data + stride()*start), length, stride(),
Slicing());
}
- const Matrix<1, Size, Precision, typename Slice<1,Stride>::Base>
as_row() const{
- return Matrix<1, Size, Precision, typename
Slice<1,Stride>::Base>(const_cast<Precision*>(my_data), 1, Size, 1, stride(),
Slicing());
+ const Matrix<1, Size, Precision, Slice<1,Stride> > as_row() const{
+ return Matrix<1, Size, Precision, Slice<1,Stride>
>(const_cast<Precision*>(my_data), 1, Size, 1, stride(), Slicing());
}
- Matrix<1, Size, Precision, typename Slice<1,Stride>::Base> as_row(){
- return Matrix<1, Size, Precision, typename
Slice<1,Stride>::Base>(my_data, 1, Size, 1, stride(), Slicing());
+ Matrix<1, Size, Precision, Slice<1,Stride> > as_row(){
+ return Matrix<1, Size, Precision, Slice<1,Stride> >(my_data, 1,
Size, 1, stride(), Slicing());
}
- const Matrix<Size, 1, Precision, typename Slice<Stride,1>::Base>
as_col() const{
- return Matrix<Size, 1, Precision, typename
Slice<Stride,1>::Base>(const_cast<Precision*>(my_data), Size, 1, stride(), 1,
Slicing());
+ const Matrix<Size, 1, Precision, Slice<Stride,1> > as_col() const{
+ return Matrix<Size, 1, Precision, Slice<Stride,1>
>(const_cast<Precision*>(my_data), Size, 1, stride(), 1, Slicing());
}
- Matrix<Size, 1, Precision, typename Slice<Stride,1>::Base> as_col(){
- return Matrix<Size, 1, Precision, typename
Slice<Stride,1>::Base>(my_data, Size, 1, stride(), 1, Slicing());
+ Matrix<Size, 1, Precision, Slice<Stride,1> > as_col(){
+ return Matrix<Size, 1, Precision, Slice<Stride,1> >(my_data,
Size, 1, stride(), 1, Slicing());
}
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Toon-members] TooN/internal mbase.hh vbase.hh,
Tom Drummond <=