toon-members
[Top][All Lists]
Advanced

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

[Toon-members] TooN/internal operators.hh


From: Tom Drummond
Subject: [Toon-members] TooN/internal operators.hh
Date: Tue, 10 Mar 2009 15:05:38 +0000

CVSROOT:        /cvsroot/toon
Module name:    TooN
Changes by:     Tom Drummond <twd20>    09/03/10 15:05:38

Modified files:
        internal       : operators.hh 

Log message:
        removed scalar/vector also

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/operators.hh?cvsroot=toon&r1=1.13&r2=1.14

Patches:
Index: operators.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/operators.hh,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- operators.hh        10 Mar 2009 09:38:03 -0000      1.13
+++ operators.hh        10 Mar 2009 15:05:37 -0000      1.14
@@ -223,12 +223,12 @@
 //
 // Except <scalar> / <matrix> does not exist
 
-#define TOON_MAKE_VECTOR_SCALAR_OP_PAIR(OPNAME, OP) \
-template<int S, typename P1, typename B1, typename P2> \
-Vector<S, typename Internal::OPNAME##Type<P1, P2>::type> operator OP (const 
Vector<S, P1, B1>& v, const P2& s)\
+#define TOON_MAKE_SCALAR_OP_LEFT(OPNAME, OP) \
+template<int R, int C, typename P1, typename B1, typename P2> \
+Matrix<R, C, typename Internal::OPNAME##Type<P1, P2>::type> operator OP (const 
Matrix<R, C, P1, B1>& m, const P2& s)\
 {      \
        typedef typename Internal::OPNAME##Type<P1, P2>::type restype;\
-       return Vector<S,restype>(v, s, Operator<Internal::ApplyScalar<restype, 
Internal::OPNAME> >(), v.size());\
+       return Matrix<R, C,restype>(m, s, 
Operator<Internal::ApplyScalar<restype, Internal::OPNAME> >(), m.num_rows(), 
m.num_cols());\
 }\
 \
 template<int S, typename P1, typename P2, typename B2> \
@@ -236,35 +236,32 @@
 {      \
        typedef typename Internal::OPNAME##Type<P1, P2>::type restype;\
        return Vector<S,restype>(s, v, 
Operator<Internal::ApplyScalarLeft<restype, Internal::OPNAME> >(), v.size());\
-}\
-
-#define TOON_MAKE_MATRIX_SCALAR_OP_LEFT(OPNAME, OP) \
-template<int R, int C, typename P1, typename B1, typename P2> \
-Matrix<R, C, typename Internal::OPNAME##Type<P1, P2>::type> operator OP (const 
Matrix<R, C, P1, B1>& m, const P2& s)\
-{      \
-       typedef typename Internal::OPNAME##Type<P1, P2>::type restype;\
-       return Matrix<R, C,restype>(m, s, 
Operator<Internal::ApplyScalar<restype, Internal::OPNAME> >(), m.num_rows(), 
m.num_cols());\
-}\
+}
 
-#define TOON_MAKE_MATRIX_SCALAR_OP_RIGHT(OPNAME, OP) \
+#define TOON_MAKE_SCALAR_OP_RIGHT(OPNAME, OP) \
 template<int R, int C, typename P1, typename P2, typename B2> \
 Matrix<R, C, typename Internal::OPNAME##Type<P1, P2>::type> operator OP (const 
P1& s, const Matrix<R, C, P2, B2>& m)\
 {      \
        typedef typename Internal::OPNAME##Type<P1, P2>::type restype;\
        return Matrix<R, C,restype>(s, m, 
Operator<Internal::ApplyScalarLeft<restype, Internal::OPNAME> >(), 
m.num_rows(), m.num_cols());\
+} \
+\
+template<int S, typename P1, typename B1, typename P2> \
+Vector<S, typename Internal::OPNAME##Type<P1, P2>::type> operator OP (const 
Vector<S, P1, B1>& v, const P2& s)\
+{      \
+       typedef typename Internal::OPNAME##Type<P1, P2>::type restype;\
+       return Vector<S,restype>(v, s, Operator<Internal::ApplyScalar<restype, 
Internal::OPNAME> >(), v.size());\
 }
 
 #define TOON_MAKE_SCALAR_OPS(OPNAME, OP)\
-TOON_MAKE_VECTOR_SCALAR_OP_PAIR(OPNAME, OP)\
-TOON_MAKE_MATRIX_SCALAR_OP_LEFT(OPNAME, OP)\
-TOON_MAKE_MATRIX_SCALAR_OP_RIGHT(OPNAME, OP)
+TOON_MAKE_SCALAR_OP_LEFT(OPNAME, OP)\
+TOON_MAKE_SCALAR_OP_RIGHT(OPNAME, OP)
 
 TOON_MAKE_SCALAR_OPS(Add, +)
 TOON_MAKE_SCALAR_OPS(Subtract, -)
 TOON_MAKE_SCALAR_OPS(Multiply, *)
 
-TOON_MAKE_VECTOR_SCALAR_OP_PAIR(Divide, /)
-TOON_MAKE_MATRIX_SCALAR_OP_LEFT(Divide, /)
+TOON_MAKE_SCALAR_OP_LEFT(Divide, /)
 
 #undef TOON_MAKE_SCALAR_OPS
 #undef TOON_MAKE_VECTOR_SCALAR_OP_PAIR




reply via email to

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