[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Toon-members] TooN linoperators.hh
From: |
Gerhard Reitmayr |
Subject: |
[Toon-members] TooN linoperators.hh |
Date: |
Thu, 23 Aug 2007 16:19:14 +0000 |
CVSROOT: /cvsroot/toon
Module name: TooN
Changes by: Gerhard Reitmayr <gerhard> 07/08/23 16:19:14
Modified files:
. : linoperators.hh
Log message:
all operations returned fixed objects now whereever possible
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/linoperators.hh?cvsroot=toon&r1=1.16&r2=1.17
Patches:
Index: linoperators.hh
===================================================================
RCS file: /cvsroot/toon/TooN/linoperators.hh,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- linoperators.hh 20 Jun 2007 18:42:13 -0000 1.16
+++ linoperators.hh 23 Aug 2007 16:19:14 -0000 1.17
@@ -211,17 +211,19 @@
}
template <int Size, class Accessor1,class Accessor2>
-inline Vector<> operator+(const FixedVector<Size,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
- return Vector<>(lhs,rhs,
- Operator<DynamicVAdd<
+inline Vector<Size> operator+(const FixedVector<Size,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
+ assert(Size == rhs.size());
+ return Vector<Size>(lhs,rhs,
+ Operator<FixedVAdd<Size,
FixedVector<Size,Accessor1>,
DynamicVector<Accessor2> > >());
}
template <class Accessor1, int Size, class Accessor2>
-inline Vector<> operator+(const DynamicVector<Accessor1>& lhs, const
FixedVector<Size,Accessor2>& rhs){
- return Vector<>(lhs,rhs,
- Operator<DynamicVAdd<
+inline Vector<Size> operator+(const DynamicVector<Accessor1>& lhs, const
FixedVector<Size,Accessor2>& rhs){
+ assert(Size == lhs.size());
+ return Vector<Size>(lhs,rhs,
+ Operator<FixedVAdd<Size,
DynamicVector<Accessor1>,
FixedVector<Size,Accessor2> > >());
}
@@ -320,17 +322,19 @@
}
template <int Size, class Accessor1,class Accessor2>
-inline Vector<> operator-(const FixedVector<Size,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
- return Vector<>(lhs,rhs,
- Operator<DynamicVSub<
+inline Vector<Size> operator-(const FixedVector<Size,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
+ assert(Size == rhs.size());
+ return Vector<Size>(lhs,rhs,
+ Operator<FixedVSub<Size,
FixedVector<Size,Accessor1>,
DynamicVector<Accessor2> > >());
}
template <class Accessor1, int Size, class Accessor2>
-inline Vector<> operator-(const DynamicVector<Accessor1>& lhs, const
FixedVector<Size,Accessor2>& rhs){
- return Vector<>(lhs,rhs,
- Operator<DynamicVSub<
+inline Vector<Size> operator-(const DynamicVector<Accessor1>& lhs, const
FixedVector<Size,Accessor2>& rhs){
+ assert(Size == lhs.size());
+ return Vector<Size>(lhs,rhs,
+ Operator<FixedVSub<Size,
DynamicVector<Accessor1>,
FixedVector<Size,Accessor2> > >());
}
@@ -622,7 +626,7 @@
template <int Rows, int Cols, class MAccessor, class VAccessor>
-inline Vector<> operator*(const DynamicVector<VAccessor>& lhs,
+inline Vector<Cols> operator*(const DynamicVector<VAccessor>& lhs,
const FixedMatrix<Rows,Cols,MAccessor>& rhs){
return (rhs.T()*lhs);
}
@@ -887,22 +891,22 @@
template <int Rows, int Cols, class LHAccessor, class RHAccessor>
-Matrix<> operator-(const FixedMatrix<Rows,Cols,LHAccessor>& lhs,
+Matrix<Rows, Cols> operator-(const FixedMatrix<Rows,Cols,LHAccessor>& lhs,
const DynamicMatrix<RHAccessor>& rhs){
assert(rhs.num_rows()==Rows && rhs.num_cols()==Cols);
- return Matrix<> (lhs,rhs,
- Operator<DynamicMMSub<
+ return Matrix<Rows, Cols> (lhs,rhs,
+ Operator<FixedMMSub<Rows, Cols,
FixedMatrix<Rows,Cols,LHAccessor>,
DynamicMatrix<RHAccessor> > >());
}
template <int Rows, int Cols, class LHAccessor, class RHAccessor>
-Matrix<> operator-(const DynamicMatrix<LHAccessor>& lhs,
+Matrix<Rows, Cols> operator-(const DynamicMatrix<LHAccessor>& lhs,
const FixedMatrix<Rows,Cols,RHAccessor>& rhs){
assert(lhs.num_rows()==Rows && lhs.num_cols()==Cols);
- return Matrix<> (lhs,rhs,
- Operator<DynamicMMSub<
+ return Matrix<Rows, Cols> (lhs,rhs,
+ Operator<FixedMMSub<Rows, Cols,
DynamicMatrix<LHAccessor>,
FixedMatrix<Rows,Cols,RHAccessor> > >());
}
@@ -1113,13 +1117,15 @@
}
template<class Accessor1, class Accessor2, int Size>
-Vector<> diagmult(const FixedVector<Size,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
- return
Vector<>(lhs,rhs,Operator<DynamicDiagVVMult<FixedVector<Size,Accessor1>,DynamicVector<Accessor2>
> >());
+Vector<Size> diagmult(const FixedVector<Size,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
+ assert(lhs.size() == rhs.size());
+ return
Vector<Size>(lhs,rhs,Operator<DiagVVMult<FixedVector<Size,Accessor1>,DynamicVector<Accessor2>,
Size > >());
}
template<class Accessor1, class Accessor2, int Size>
-Vector<> diagmult(const DynamicVector<Accessor1>& lhs, const
FixedVector<Size,Accessor2>& rhs){
- return
Vector<>(lhs,rhs,Operator<DynamicDiagVVMult<DynamicVector<Accessor1>,FixedVector<Size,Accessor2>
> >());
+Vector<Size> diagmult(const DynamicVector<Accessor1>& lhs, const
FixedVector<Size,Accessor2>& rhs){
+ assert(lhs.size() == rhs.size());
+ return
Vector<Size>(lhs,rhs,Operator<DiagVVMult<DynamicVector<Accessor1>,FixedVector<Size,Accessor2>,
Size > >());
}
/////////////////////////
@@ -1172,8 +1178,9 @@
}
template<class Accessor1, class Accessor2, int Rows, int Cols>
-inline Matrix<> diagmult(const DynamicVector<Accessor1>& lhs, const
FixedMatrix<Rows,Cols,Accessor2>& rhs){
- return
Matrix<>(lhs,rhs,Operator<DynamicDiagVMMult<DynamicVector<Accessor1>,FixedMatrix<Rows,Cols,Accessor2>
> >());
+inline Matrix<Rows, Cols> diagmult(const DynamicVector<Accessor1>& lhs, const
FixedMatrix<Rows,Cols,Accessor2>& rhs){
+ assert(lhs.size() == Rows);
+ return Matrix<Rows,
Cols>(lhs,rhs,Operator<DiagVMMult<DynamicVector<Accessor1>,FixedMatrix<Rows,Cols,Accessor2>,Rows,Cols
> >());
}
/////////////////////////
@@ -1226,8 +1233,9 @@
}
template<class Accessor1, class Accessor2, int Rows, int Cols>
-inline Matrix<> diagmult(const FixedMatrix<Rows,Cols,Accessor1>& lhs, const
DynamicVector<Accessor2>& rhs){
- return
Matrix<>(lhs,rhs,Operator<DynamicDiagMVMult<FixedMatrix<Rows,Cols,Accessor1>,
DynamicVector<Accessor2> > >());
+inline Matrix<Rows, Cols> diagmult(const FixedMatrix<Rows,Cols,Accessor1>&
lhs, const DynamicVector<Accessor2>& rhs){
+ assert(rhs.size() == Cols);
+ return Matrix<Rows,
Cols>(lhs,rhs,Operator<DiagMVMult<FixedMatrix<Rows,Cols,Accessor1>,
DynamicVector<Accessor2>,Rows,Cols > >());
}
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Toon-members] TooN linoperators.hh,
Gerhard Reitmayr <=