aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/examples/class_CwiseBinaryOp.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-05-22 16:31:00 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-05-22 16:31:00 +0000
commit8f1fc80a77551b26c05669527534aff7b621b86c (patch)
tree145a82470e1193e7c25492925f10dcbe34221dd6 /doc/examples/class_CwiseBinaryOp.cpp
parent94e1629a1b64e384281514b3c11e4c74ca31a622 (diff)
some documentation fixes (Cwise* and Cholesky)
Diffstat (limited to 'doc/examples/class_CwiseBinaryOp.cpp')
-rw-r--r--doc/examples/class_CwiseBinaryOp.cpp22
1 files changed, 5 insertions, 17 deletions
diff --git a/doc/examples/class_CwiseBinaryOp.cpp b/doc/examples/class_CwiseBinaryOp.cpp
index b91abd1ef..f95090b4d 100644
--- a/doc/examples/class_CwiseBinaryOp.cpp
+++ b/doc/examples/class_CwiseBinaryOp.cpp
@@ -1,29 +1,17 @@
-// FIXME - this example is not too good as that functionality is provided in the Eigen API
-// additionally it's quite heavy. the CwiseUnaryOp example is better.
-
#include <Eigen/Core>
USING_PART_OF_NAMESPACE_EIGEN
using namespace std;
// define a custom template binary functor
-template<typename Scalar> struct CwiseMinOp EIGEN_EMPTY_STRUCT {
- Scalar operator()(const Scalar& a, const Scalar& b) const { return std::min(a,b); }
- enum { Cost = Eigen::ConditionalJumpCost + Eigen::NumTraits<Scalar>::AddCost };
+template<typename Scalar> struct MakeComplexOp EIGEN_EMPTY_STRUCT {
+ typedef complex<Scalar> result_type;
+ complex<Scalar> operator()(const Scalar& a, const Scalar& b) const { return complex<Scalar>(a,b); }
+ enum { Cost = 0 };
};
-// define a custom binary operator between two matrices
-template<typename Derived1, typename Derived2>
-const Eigen::CwiseBinaryOp<CwiseMinOp<typename Derived1::Scalar>, Derived1, Derived2>
-cwiseMin(const MatrixBase<Derived1> &mat1, const MatrixBase<Derived2> &mat2)
-{
- return Eigen::CwiseBinaryOp<CwiseMinOp<typename Derived1::Scalar>, Derived1, Derived2>(mat1, mat2);
-}
-
int main(int, char**)
{
Matrix4d m1 = Matrix4d::random(), m2 = Matrix4d::random();
- cout << cwiseMin(m1,m2) << endl; // use our new global operator
- cout << m1.cwise<CwiseMinOp<double> >(m2) << endl; // directly use the generic expression member
- cout << m1.cwise(m2, CwiseMinOp<double>()) << endl; // directly use the generic expression member (variant)
+ cout << m1.cwise(m2, MakeComplexOp<double>()) << endl;
return 0;
}