ndarray
NumPy-friendly multidimensional arrays in C++
|
Arithmetic and logical operators for Array. More...
#include "ndarray/Array.h"
#include <boost/call_traits.hpp>
#include <boost/utility/enable_if.hpp>
#include "ndarray/detail/UnaryOp.h"
#include "ndarray/detail/BinaryOp.h"
#include "ndarray/types.h"
Go to the source code of this file.
Functions | |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::PlusTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator+ (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::PlusTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator+ (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::PlusTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator+ (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::MinusTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator- (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::MinusTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator- (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::MinusTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator- (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::MultipliesTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator* (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::MultipliesTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator* (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::MultipliesTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator* (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::DividesTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator/ (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::DividesTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator/ (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::DividesTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator/ (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::ModulusTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator% (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::ModulusTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator% (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::ModulusTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator% (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseXorTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator^ (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseXorTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator^ (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::BitwiseXorTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator^ (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseOrTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator| (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseOrTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator| (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::BitwiseOrTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator| (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseAndTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator& (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseAndTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator& (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::BitwiseAndTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator& (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseLeftShiftTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator<< (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseLeftShiftTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator<< (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::BitwiseLeftShiftTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator<< (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseRightShiftTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::operator>> (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::BitwiseRightShiftTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::operator>> (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::BitwiseRightShiftTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::operator>> (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::EqualToTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::equal (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::EqualToTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::equal (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::EqualToTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::equal (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::NotEqualToTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::not_equal (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::NotEqualToTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::not_equal (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::NotEqualToTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::not_equal (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LessTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::less (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LessTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::less (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::LessTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::less (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::GreaterTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::greater (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::GreaterTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::greater (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::GreaterTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::greater (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LessEqualTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::less_equal (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LessEqualTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::less_equal (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::LessEqualTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::less_equal (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::GreaterEqualTag::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::great_equal (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::GreaterEqualTag::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::great_equal (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::GreaterEqualTag::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::great_equal (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LogicalAnd::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::logical_and (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LogicalAnd::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::logical_and (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::LogicalAnd::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::logical_and (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LogicalOr::templateExprScalar< Operand, Scalar >::Bound > >::type | ndarray::logical_or (ExpressionBase< Operand > const &operand, Scalar const &scalar) |
template<typename Operand , typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, detail::UnaryOpExpression< Operand, typenamedetail::LogicalOr::templateScalarExpr< Operand, Scalar >::Bound > >::type | ndarray::logical_or (Scalar const &scalar, ExpressionBase< Operand > const &operand) |
template<typename Operand1 , typename Operand2 > | |
detail::BinaryOpExpression< Operand1, Operand2, typename detail::LogicalOr::template ExprExpr< Operand1, Operand2 >::BinaryFunction > | ndarray::logical_or (ExpressionBase< Operand1 > const &operand1, ExpressionBase< Operand2 > const &operand2) |
template<typename Operand > | |
detail::UnaryOpExpression< Operand, std::negate< typename ExpressionTraits< Operand >::Element > > | ndarray::operator- (ExpressionBase< Operand > const &operand) |
template<typename Operand > | |
detail::UnaryOpExpression< Operand, std::logical_not< typename ExpressionTraits< Operand >::Element > > | ndarray::logical_not (ExpressionBase< Operand > const &operand) |
template<typename Operand > | |
detail::UnaryOpExpression< Operand, detail::BitwiseNot< typename ExpressionTraits< Operand >::Element > > | ndarray::operator~ (ExpressionBase< Operand > const &operand) |
template<typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, bool >::type | ndarray::any (Scalar const &scalar) |
template<typename Derived > | |
bool | ndarray::any (ExpressionBase< Derived > const &expr) |
Return true if any of the elements of the given expression are true. | |
template<typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, bool >::type | ndarray::all (Scalar const &scalar) |
template<typename Derived > | |
bool | ndarray::all (ExpressionBase< Derived > const &expr) |
Return true if all of the elements of the given expression are true. | |
template<typename Scalar1 , typename Scalar2 > | |
boost::enable_if< boost::mpl::and_< typenameExpressionTraits< Scalar1 >::IsScalar, typenameExpressionTraits< Scalar2 >::IsScalar >, bool >::type | ndarray::allclose (Scalar1 const &scalar1, Scalar2 const &scalar2, double tol=1E-8) |
template<typename Scalar , typename Derived > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, bool >::type | ndarray::allclose (Scalar const &scalar, ExpressionBase< Derived > const &expr, double tol=1E-8) |
template<typename Scalar , typename Derived > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, bool >::type | ndarray::allclose (ExpressionBase< Derived > const &expr, Scalar const &scalar, double tol=1E-8) |
template<typename Derived1 , typename Derived2 > | |
bool | ndarray::allclose (ExpressionBase< Derived1 > const &expr1, ExpressionBase< Derived2 > const &expr2, double tol=1E-8) |
template<typename Scalar > | |
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, Scalar >::type | ndarray::sum (Scalar const &scalar) |
template<typename Derived > | |
Derived::Element | ndarray::sum (ExpressionBase< Derived > const &expr) |
Return the sum of all elements of the given expression. | |
Arithmetic and logical operators for Array.