toon-members
[Top][All Lists]
Advanced

[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




reply via email to

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