[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Toon-members] TooN/internal operators.hh
From: |
Edward Rosten |
Subject: |
[Toon-members] TooN/internal operators.hh |
Date: |
Tue, 10 Mar 2009 09:38:03 +0000 |
CVSROOT: /cvsroot/toon
Module name: TooN
Changes by: Edward Rosten <edrosten> 09/03/10 09:38:03
Modified files:
internal : operators.hh
Log message:
Remove scalar / matrix
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/internal/operators.hh?cvsroot=toon&r1=1.12&r2=1.13
Patches:
Index: operators.hh
===================================================================
RCS file: /cvsroot/toon/TooN/internal/operators.hh,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- operators.hh 9 Mar 2009 12:00:06 -0000 1.12
+++ operators.hh 10 Mar 2009 09:38:03 -0000 1.13
@@ -221,8 +221,9 @@
// matrix <op> scalar
// scalar <op> matrix
//
+// Except <scalar> / <matrix> does not exist
-#define TOON_MAKE_SCALAR_OPS(OPNAME, OP) \
+#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)\
{ \
@@ -236,13 +237,16 @@
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) \
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)\
{ \
@@ -250,12 +254,22 @@
return Matrix<R, C,restype>(s, m,
Operator<Internal::ApplyScalarLeft<restype, Internal::OPNAME> >(),
m.num_rows(), m.num_cols());\
}
+#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_OPS(Add, +)
TOON_MAKE_SCALAR_OPS(Subtract, -)
TOON_MAKE_SCALAR_OPS(Multiply, *)
-TOON_MAKE_SCALAR_OPS(Divide, /)
+
+TOON_MAKE_VECTOR_SCALAR_OP_PAIR(Divide, /)
+TOON_MAKE_MATRIX_SCALAR_OP_LEFT(Divide, /)
#undef TOON_MAKE_SCALAR_OPS
+#undef TOON_MAKE_VECTOR_SCALAR_OP_PAIR
+#undef TOON_MAKE_MATRIX_SCALAR_OP_LEFT
+#undef TOON_MAKE_MATRIX_SCALAR_OP_RIGHT
- [Toon-members] TooN/internal operators.hh, Edward Rosten, 2009/03/06
- [Toon-members] TooN/internal operators.hh, Tom Drummond, 2009/03/09
- [Toon-members] TooN/internal operators.hh,
Edward Rosten <=
- [Toon-members] TooN/internal operators.hh, Tom Drummond, 2009/03/10
- [Toon-members] TooN/internal operators.hh, Tom Drummond, 2009/03/10
- [Toon-members] TooN/internal operators.hh, Tom Drummond, 2009/03/10
- [Toon-members] TooN/internal operators.hh, Tom Drummond, 2009/03/10
- [Toon-members] TooN/internal operators.hh, Tom Drummond, 2009/03/10
- [Toon-members] TooN/internal operators.hh, Edward Rosten, 2009/03/25
- [Toon-members] TooN/internal operators.hh, Gerhard Reitmayr, 2009/03/26