Minsky
|
perform a binary operation elementwise over two tensor arguments. Arguments need to be conformal: at least one must be a scalar, or both arguments have the same shape More...
#include <tensorOp.h>
Public Member Functions | |
template<class F > | |
BinOp (F f, const TensorPtr &arg1={}, const TensorPtr &arg2={}) | |
void | setArguments (const TensorPtr &a1, const TensorPtr &a2, const ITensor::Args &) override |
double | operator[] (std::size_t i) const override |
return or compute data at a location More... | |
Timestamp | timestamp () const override |
timestamp indicating how old the dependendent data might be. Used in CachedTensorOp to determine when to invalidate the cache More... | |
![]() | |
CLASSDESC_ACCESS (ITensor) | |
ITensor () | |
ITensor (const Hypercube &hc) | |
ITensor (Hypercube &&hc) | |
ITensor (const std::vector< unsigned > &dims) | |
ITensor (const ITensor &)=default | |
ITensor (ITensor &&)=default | |
ITensor & | operator= (const ITensor &)=default |
ITensor & | operator= (ITensor &&)=default |
virtual | ~ITensor () |
virtual const Hypercube & | hypercube () const |
information describing the axes, types and labels of this tensor More... | |
virtual const Hypercube & | hypercube (const Hypercube &hc) |
virtual const Hypercube & | hypercube (Hypercube &&hc) |
std::size_t | rank () const |
std::vector< unsigned > | shape () const |
void | imposeDimensions (const Dimensions &dimensions) |
impose dimensions according to dimension map dimensions More... | |
virtual const Index & | index () const |
the index vector - assumed to be ordered and unique More... | |
virtual std::size_t | size () const |
return number of elements in tensor - maybe less than hypercube.numElements if sparse More... | |
double | atHCIndex (std::size_t hcIdx) const |
returns the data value at hypercube index hcIdx, or NaN if More... | |
template<class T > | |
std::size_t | hcIndex (const std::initializer_list< T > &indices) const |
template<class T > | |
double | operator() (const std::initializer_list< T > &indices) const |
virtual void | setArgument (const TensorPtr &, const ITensor::Args &args={"", 0}) |
virtual void | setArguments (const std::vector< TensorPtr > &a, const ITensor::Args &args={"", 0}) |
virtual void | setArguments (const std::vector< TensorPtr > &a1, const std::vector< TensorPtr > &a2, const ITensor::Args &args={"", 0}) |
Protected Attributes | |
std::function< double(double, double)> | f |
TensorPtr | arg1 |
TensorPtr | arg2 |
![]() | |
Hypercube | m_hypercube |
Index | m_index |
Additional Inherited Members | |
![]() | |
using | Timestamp = std::chrono::time_point< std::chrono::high_resolution_clock > |
![]() | |
void | notImpl () const |
perform a binary operation elementwise over two tensor arguments. Arguments need to be conformal: at least one must be a scalar, or both arguments have the same shape
Definition at line 49 of file tensorOp.h.
|
inline |
Definition at line 56 of file tensorOp.h.
|
inlineoverridevirtual |
return or compute data at a location
Implements civita::ITensor.
Definition at line 61 of file tensorOp.h.
References arg1, arg2, f, civita::ITensor::hcIndex(), civita::ITensor::index(), and civita::ITensor::size().
|
overridevirtual |
Reimplemented from civita::ITensor.
Reimplemented in minsky::TensorBinOp< OperationType::add >.
Definition at line 28 of file tensorOp.cc.
|
inlineoverridevirtual |
timestamp indicating how old the dependendent data might be. Used in CachedTensorOp to determine when to invalidate the cache
Implements civita::ITensor.
Definition at line 77 of file tensorOp.h.
|
protected |
Definition at line 53 of file tensorOp.h.
Referenced by operator[](), and timestamp().
|
protected |
Definition at line 53 of file tensorOp.h.
Referenced by operator[](), and timestamp().
|
protected |
Definition at line 52 of file tensorOp.h.
Referenced by operator[]().