NEML2 2.0.0
|
Base class for second order tensor. More...
Base class for second order tensor.
The storage space is (3, 3).
#include <R2Base.h>
Public Member Functions | |
operator SR2 () const | |
Conversion operator to symmetric second order tensor. | |
Derived | rotate (const Rot &r) const |
Rotate using a Rodrigues vector. | |
Derived | rotate (const R2 &R) const |
Rotate using a rotation matrix. | |
R3 | drotate (const Rot &r) const |
Derivative of the rotated tensor w.r.t. the Rodrigues vector. | |
R4 | drotate (const R2 &R) const |
Derivative of the rotated tensor w.r.t. the rotation matrix. | |
Scalar | operator() (Size i, Size j) const |
Accessor. | |
Derived | inverse () const |
Inversion. | |
Derived | transpose () const |
transpose | |
![]() | |
PrimitiveTensor ()=default | |
Special member functions. | |
PrimitiveTensor (const ATensor &tensor, Size batch_dim) | |
Construct from another ATensor given batch dimension. | |
PrimitiveTensor (const ATensor &tensor, const TraceableTensorShape &batch_shape) | |
Construct from another ATensor given batch shape. | |
PrimitiveTensor (const Tensor &tensor) | |
Copy constructor. | |
PrimitiveTensor (const ATensor &tensor) | |
Construct from another ATensor and infer batch dimension. | |
operator Tensor () const | |
Implicit conversion to a Tensor and loses information on the fixed base shape. | |
![]() | |
TensorBase ()=default | |
Special member functions. | |
TensorBase (const ATensor &tensor, Size batch_dim) | |
Construct from another ATensor with given batch dimension. | |
TensorBase (const ATensor &tensor, const TraceableTensorShape &batch_shape) | |
Construct from another ATensor with given batch shape. | |
TensorBase (const neml2::Tensor &tensor) | |
Copy constructor. | |
TensorBase (Real)=delete | |
Derived | variable_data () const |
Derived | clone () const |
Derived | detach () const |
Discard function graph. | |
Derived | to (const TensorOptions &options) const |
Change tensor options. | |
Derived | operator- () const |
Negation. | |
bool | batched () const |
Whether the tensor is batched. | |
Size | batch_dim () const |
Return the number of batch dimensions. | |
Size | base_dim () const |
Return the number of base dimensions. | |
const TraceableTensorShape & | batch_sizes () const |
Return the batch size. | |
TraceableSize | batch_size (Size index) const |
Return the size of a batch axis. | |
TensorShapeRef | base_sizes () const |
Return the base size. | |
Size | base_size (Size index) const |
Return the size of a base axis. | |
Size | base_storage () const |
Return the flattened storage needed just for the base indices. | |
Derived | batch_index (indexing::TensorIndicesRef indices) const |
Get a tensor by slicing on the batch dimensions. | |
neml2::Tensor | base_index (indexing::TensorIndicesRef indices) const |
Get a tensor by slicing on the base dimensions. | |
Derived | batch_slice (Size dim, const indexing::Slice &index) const |
Get a tensor by slicing along a batch dimension. | |
neml2::Tensor | base_slice (Size dim, const indexing::Slice &index) const |
Get a tensor by slicing along a base dimension. | |
void | batch_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other) |
void | batch_index_put_ (indexing::TensorIndicesRef indices, Real v) |
void | base_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other) |
void | base_index_put_ (indexing::TensorIndicesRef indices, Real v) |
Derived | batch_expand (const TraceableTensorShape &batch_shape) const |
Derived | batch_expand (const TraceableSize &batch_size, Size dim) const |
Return a new view of the tensor with values broadcast along a given batch dimension. | |
neml2::Tensor | base_expand (TensorShapeRef base_shape) const |
Return a new view of the tensor with values broadcast along the base dimensions. | |
neml2::Tensor | base_expand (Size base_size, Size dim) const |
Return a new view of the tensor with values broadcast along a given base dimension. | |
Derived | batch_expand_as (const neml2::Tensor &other) const |
Expand the batch to have the same shape as another tensor. | |
neml2::Tensor | base_expand_as (const neml2::Tensor &other) const |
Expand the base to have the same shape as another tensor. | |
Derived | batch_expand_copy (const TraceableTensorShape &batch_shape) const |
Return a new tensor with values broadcast along the batch dimensions. | |
neml2::Tensor | base_expand_copy (TensorShapeRef base_shape) const |
Return a new tensor with values broadcast along the base dimensions. | |
Derived | batch_reshape (const TraceableTensorShape &batch_shape) const |
Reshape batch dimensions. | |
neml2::Tensor | base_reshape (TensorShapeRef base_shape) const |
Reshape base dimensions. | |
Derived | batch_unsqueeze (Size d) const |
Unsqueeze a batch dimension. | |
neml2::Tensor | base_unsqueeze (Size d) const |
Unsqueeze a base dimension. | |
Derived | batch_transpose (Size d1, Size d2) const |
Transpose two batch dimensions. | |
neml2::Tensor | base_transpose (Size d1, Size d2) const |
Transpose two base dimensions. | |
neml2::Tensor | base_flatten () const |
Flatten base dimensions. | |
Static Public Member Functions | |
static Derived | fill (const Real &a, const TensorOptions &options=default_tensor_options()) |
Fill the diagonals with a11 = a22 = a33 = a. | |
static Derived | fill (const Scalar &a) |
static Derived | fill (const Real &a11, const Real &a22, const Real &a33, const TensorOptions &options=default_tensor_options()) |
Fill the diagonals with a11, a22, a33. | |
static Derived | fill (const Scalar &a11, const Scalar &a22, const Scalar &a33) |
static Derived | fill (const Real &a11, const Real &a22, const Real &a33, const Real &a23, const Real &a13, const Real &a12, const TensorOptions &options=default_tensor_options()) |
Fill symmetric entries. | |
static Derived | fill (const Scalar &a11, const Scalar &a22, const Scalar &a33, const Scalar &a23, const Scalar &a13, const Scalar &a12) |
static Derived | fill (const Real &a11, const Real &a12, const Real &a13, const Real &a21, const Real &a22, const Real &a23, const Real &a31, const Real &a32, const Real &a33, const TensorOptions &options=default_tensor_options()) |
Fill all entries. | |
static Derived | fill (const Scalar &a11, const Scalar &a12, const Scalar &a13, const Scalar &a21, const Scalar &a22, const Scalar &a23, const Scalar &a31, const Scalar &a32, const Scalar &a33) |
static Derived | skew (const Vec &v) |
Skew matrix from Vec. | |
static Derived | identity (const TensorOptions &options=default_tensor_options()) |
Identity. | |
![]() | |
static Derived | create (const TensorDataContainer &data, const TensorOptions &options=default_tensor_options()) |
Arbitrary tensor from a nested container with inferred batch dimension. | |
static Derived | empty (const TensorOptions &options=default_tensor_options()) |
Unbatched empty tensor. | |
static Derived | empty (const TraceableTensorShape &batch_shape, const TensorOptions &options=default_tensor_options()) |
Empty tensor given batch shape. | |
static Derived | zeros (const TensorOptions &options=default_tensor_options()) |
Unbatched zero tensor. | |
static Derived | zeros (const TraceableTensorShape &batch_shape, const TensorOptions &options=default_tensor_options()) |
Zero tensor given batch shape. | |
static Derived | ones (const TensorOptions &options=default_tensor_options()) |
Unbatched unit tensor. | |
static Derived | ones (const TraceableTensorShape &batch_shape, const TensorOptions &options=default_tensor_options()) |
Unit tensor given batch shape. | |
static Derived | full (Real init, const TensorOptions &options=default_tensor_options()) |
Unbatched tensor filled with a given value given base shape. | |
static Derived | full (const TraceableTensorShape &batch_shape, Real init, const TensorOptions &options=default_tensor_options()) |
Full tensor given batch shape. | |
static Tensor | identity_map (const TensorOptions &) |
Derived tensor classes should define identity_map where appropriate. | |
![]() | |
static Derived | empty_like (const Derived &other) |
static Derived | zeros_like (const Derived &other) |
Zero tensor like another, i.e. same batch and base shapes, same tensor options, etc. | |
static Derived | ones_like (const Derived &other) |
Unit tensor like another, i.e. same batch and base shapes, same tensor options, etc. | |
static Derived | full_like (const Derived &other, Real init) |
static Derived | linspace (const Derived &start, const Derived &end, Size nstep, Size dim=0) |
Create a new tensor by adding a new batch dimension with linear spacing between start and end . | |
static Derived | logspace (const Derived &start, const Derived &end, Size nstep, Size dim=0, Real base=10) |
log-space equivalent of the linspace named constructor | |
Additional Inherited Members | |
![]() | |
static const TensorShape | const_base_sizes |
The base shape. | |
static constexpr Size | const_base_dim |
The base dim. | |
static const Size | const_base_storage |
The base storage. | |
Derivative of the rotated tensor w.r.t. the rotation matrix.
Derivative of the rotated tensor w.r.t. the Rodrigues vector.
|
staticnodiscard |
Fill the diagonals with a11 = a22 = a33 = a.
|
staticnodiscard |
Fill all entries.
|
staticnodiscard |
Fill symmetric entries.
|
staticnodiscard |
Fill the diagonals with a11, a22, a33.
|
staticnodiscard |
|
staticnodiscard |
|
staticnodiscard |
|
staticnodiscard |
|
staticnodiscard |
Identity.
Derived inverse | ( | ) | const |
Inversion.
|
explicit |
Conversion operator to symmetric second order tensor.
Derived rotate | ( | const R2 & | R | ) | const |
Rotate using a rotation matrix.
Derived rotate | ( | const Rot & | r | ) | const |
Rotate using a Rodrigues vector.
Derived transpose | ( | ) | const |
transpose