69 inline static SP::EMM_4Tensors
New() {
132 (*this)(index,i,j,k,l)=v;
150 return (*
this)(index,i,j,k,l);
161 for (
tUSInt k=0;k<4;k++) n*=dim;
174 return s+dim*(r+dim*(q+dim*p));
297 const tReal *V)
const;
327 const tReal *Z)
const;
virtual ~EMM_4Tensors(void)
destroy
Definition: EMM_4Tensors.cpp:14
virtual SP::EMM_Tensors NewInstance() const
create a new instance
Definition: EMM_4Tensors.h:79
virtual const tReal & operator()(const tUIndex &index, const tUSInt &p, const tUSInt &q, const tUSInt &r, const tUSInt &s) const
get the values at index p,q,r,s of the tensor at index
Definition: EMM_4Tensors.h:94
virtual void doubleDotProduct(const tUIndex &n, const tUSInt &dim, const tReal &beta, const tUSInt &m, const tBoolean &incS, const tReal *S, const EMM_2PackedSymmetricTensors &phi, const tBoolean &incU, const tReal *U, const tReal &alpha, tReal *Z) const
compute the vector Z=alpha.Z+beta. S^m (T:phi) U
Definition: EMM_4Tensors.cpp:197
virtual tReal doubleDotCrossSquaredScalar(const tUIndex &n, const tUSInt &dim, const tUSInt &p, const tBoolean &incS, const tReal *S, const tBoolean &incU, const tReal *U, const tBoolean &incV, const tReal *V, const tBoolean &incW, const tReal *W, const tBoolean &incZ, const tReal *Z) const
compute the scalar where T is this 4 tensor
Definition: EMM_4Tensors.cpp:1056
void setValue(const tUIndex &index, const tUSInt &i, const tUSInt &j, const tUSInt &k, const tUSInt &l, const tReal &v)
set the value of the tensor at index and at coordinates i,j,k,l to v
Definition: EMM_4Tensors.h:126
static SP::EMM_4Tensors New()
builds a full tensor
Definition: EMM_4Tensors.h:69
#define tUSInt
Definition: types.h:28
#define tBoolean
Definition: types.h:139
virtual tReal doubleDotCrossDoubleDotScalar(const tUIndex &n, const tUSInt &dim, const tUSInt &p, const tBoolean &incS, const tReal *S, const tBoolean &incU, const tReal *U, const tBoolean &incV, const tReal *V, const EMM_2PackedSymmetricTensors &phi) const
compute the scalar where T is this 4 tensor
Definition: EMM_4Tensors.cpp:641
const tUSInt & getDimension() const
get the dimension of the tensor
Definition: EMM_Tensors.h:252
This class describes a morse array of symmetric tensors of 2 order in packed form.
Definition: EMM_2PackedSymmetricTensors.h:20
EMM_4Tensors()
create a 4 order tensor
Definition: EMM_4Tensors.cpp:8
const tReal & getValue(const tUIndex &index, const tUSInt &i, const tUSInt &j, const tUSInt &k, const tUSInt &l) const
get the value of the tensor at index and at coordinates i,j,k,l
Definition: EMM_4Tensors.h:145
virtual tUSInt getIndex(const tUSInt &p, const tUSInt &q, const tUSInt &r, const tUSInt &s, const tUSInt &dim) const
get the index of element (p,q,r,s)
Definition: EMM_4Tensors.h:173
#define tUIndex
Definition: types.h:126
virtual tUSInt getTensorSize() const
get thememory size of the storage of each tensor
Definition: EMM_4Tensors.h:158
virtual void doubleDotCrossProduct(const tUIndex &n, const tUSInt &dim, const tReal &beta, const tUSInt &m, const tBoolean &incS, const tReal *S, const tBoolean &incU, const tReal *U, const tBoolean &incV, const tReal *V, const tBoolean &incW, const tReal *W, const tReal &alpha, tReal *Z) const
compute the vector Z=alpha.Z+beta. S^m . (T:UxV)W
Definition: EMM_4Tensors.cpp:21
virtual tReal squaredDoubleDotCrossScalar(const tUIndex &n, const tUSInt &dim, const tUSInt &p, const tBoolean &incS, const tReal *S, const EMM_2PackedSymmetricTensors &phi, const tBoolean &incU, const tReal *U, const tBoolean &incV, const tReal *V) const
compute the scalar where T is this 4 tensor
Definition: EMM_4Tensors.cpp:870
virtual tReal & operator()(const tUIndex &index, const tUSInt &p, const tUSInt &q, const tUSInt &r, const tUSInt &s)
get the values at index p,q,r,s of the tensor at index
Definition: EMM_4Tensors.h:107
virtual tReal squaredDoubleDotScalar(const EMM_2PackedSymmetricTensors &psi, const EMM_2PackedSymmetricTensors &phi) const
compute the scalar
Definition: EMM_4Tensors.cpp:390
This class describes a morse array of tensors of 4 order.
Definition: EMM_4Tensors.h:19
DEFINE_SPTR(EMM_4Tensors)
#define tReal
Definition: types.h:118
This class describes a morse array of tensors.
Definition: EMM_Tensors.h:20
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141