MADNESS 0.10.1
Public Member Functions | Private Types | Private Attributes | List of all members
BinaryOp< resultT, L, R, opT, NDIM > Class Template Reference

Returns a new functor combining two functors via operation op(left,right) More...

Inheritance diagram for BinaryOp< resultT, L, R, opT, NDIM >:
Inheritance graph
[legend]
Collaboration diagram for BinaryOp< resultT, L, R, opT, NDIM >:
Collaboration graph
[legend]

Public Member Functions

 BinaryOp (const functorL &left, const functorR &right, opT &op)
 
resultT operator() (const coordT &x) const
 You should implement this to return f(x)
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< resultT, NDIM >
 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, resultT *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, resultT *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, resultT *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, resultT *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, resultT *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, resultT *fvals, int npts) const
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values?
 
virtual bool screened (const Vector< double, NDIM > &c1, const Vector< double, NDIM > &c2) const
 Can we screen this function based on the bounding box information?
 
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale
 
virtual Level special_level ()
 Override this change level refinement for special points (default is 6)
 
virtual std::vector< Vector< double, NDIM > > special_points () const
 Override this to return list of special points to be refined more deeply.
 
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()?
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Private Types

typedef Vector< double, NDIMcoordT
 
typedef std::shared_ptr< FunctionFunctorInterface< L, NDIM > > functorL
 
typedef std::shared_ptr< FunctionFunctorInterface< R, NDIM > > functorR
 

Private Attributes

functorL left
 
opT op
 
functorR right
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< resultT, NDIM >
typedef GenTensor< resultT > coeffT
 
typedef Key< NDIMkeyT
 
typedef resultT value_type
 
- Public Attributes inherited from madness::FunctionFunctorInterface< resultT, NDIM >
Level special_level_
 

Detailed Description

template<typename resultT, typename L, typename R, typename opT, std::size_t NDIM>
class BinaryOp< resultT, L, R, opT, NDIM >

Returns a new functor combining two functors via operation op(left,right)

Member Typedef Documentation

◆ coordT

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
typedef Vector<double,NDIM> BinaryOp< resultT, L, R, opT, NDIM >::coordT
private

◆ functorL

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
typedef std::shared_ptr< FunctionFunctorInterface<L,NDIM> > BinaryOp< resultT, L, R, opT, NDIM >::functorL
private

◆ functorR

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
typedef std::shared_ptr< FunctionFunctorInterface<R,NDIM> > BinaryOp< resultT, L, R, opT, NDIM >::functorR
private

Constructor & Destructor Documentation

◆ BinaryOp()

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
BinaryOp< resultT, L, R, opT, NDIM >::BinaryOp ( const functorL left,
const functorR right,
opT &  op 
)
inline

Member Function Documentation

◆ operator()()

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
resultT BinaryOp< resultT, L, R, opT, NDIM >::operator() ( const coordT x) const
inlinevirtual

Member Data Documentation

◆ left

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
functorL BinaryOp< resultT, L, R, opT, NDIM >::left
private

◆ op

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
opT BinaryOp< resultT, L, R, opT, NDIM >::op
private

◆ right

template<typename resultT , typename L , typename R , typename opT , std::size_t NDIM>
functorR BinaryOp< resultT, L, R, opT, NDIM >::right
private

The documentation for this class was generated from the following file: