NEML2 2.1.0
Loading...
Searching...
No Matches
VecBase< Derived > Class Template Reference

Base class 3-vector. More...

Detailed Description

template<class Derived>
class neml2::VecBase< Derived >

Base class 3-vector.

The storage space is (3). This class provides common operations for vector.

#include <VecBase.h>

Inheritance diagram for VecBase< Derived >:

Public Member Functions

Derived rotate (const Rot &r) const
 Rotate using a Rodrigues vector.
Derived rotate (const R2 &R) const
 Rotate using a rotation matrix.
R2 drotate (const Rot &r) const
 Derivative of the rotated vector w.r.t. the Rodrigues vector.
R3 drotate (const R2 &R) const
 Derivative of the rotated vector w.r.t. the rotation matrix.
Public Member Functions inherited from PrimitiveTensor< Derived, 3 >
 PrimitiveTensor ()=default
 Special member functions.
 operator neml2::Tensor () const
 Implicit conversion to a Tensor (discards information on the fixed base shape).
Scalar operator() (Args... i) const
 Single-element accessor.
Public Member Functions inherited from TensorBase< Derived >
 TensorBase ()=default
 Default constructor.
 TensorBase (const ATensor &tensor, Size dynamic_dim, Size intmd_dim)
 Construct from an ATensor with given dynamic dimension.
 TensorBase (const ATensor &tensor, TraceableTensorShape dynamic_shape, Size intmd_dim)
 Construct from an ATensor with given dynamic shape.
template<class Derived2>
 TensorBase (const TensorBase< Derived2 > &tensor)
 Copy constructor.
 TensorBase (double)=delete
 TensorBase (float)=delete
 TensorBase (int)=delete
Derived variable_data () const
 Variable data without function graph.
Derived contiguous () const
Derived clone () const
 Clone (take ownership).
Derived detach () const
 Discard function graph.
Derived to (const TensorOptions &options) const
 Change tensor options.
Derived operator- () const
 Negation.
Size batch_dim () const
Size base_dim () const
Size dynamic_dim () const
Size static_dim () const
Size intmd_dim () const
TraceableTensorShape batch_sizes () const
TensorShapeRef base_sizes () const
const TraceableTensorShapedynamic_sizes () const
TensorShapeRef static_sizes () const
TensorShapeRef intmd_sizes () const
TraceableSize batch_size (Size i) const
Size base_size (Size i) const
const TraceableSizedynamic_size (Size i) const
Size static_size (Size i) const
Size intmd_size (Size i) const
Derived dynamic_index (indexing::TensorIndicesRef indices) const
Derived intmd_index (indexing::TensorIndicesRef indices) const
neml2::Tensor base_index (indexing::TensorIndicesRef indices) const
Derived batch_index (indexing::TensorIndicesRef indices) const
Derived dynamic_slice (Size d, const indexing::Slice &index) const
Derived intmd_slice (Size d, const indexing::Slice &index) const
neml2::Tensor base_slice (Size d, const indexing::Slice &index) const
Derived batch_slice (Size d, const indexing::Slice &index) const
void dynamic_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
void dynamic_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
void intmd_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
void intmd_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
void base_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
void base_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
void batch_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
void batch_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
Derived dynamic_expand (const TraceableTensorShape &shape) const
Derived intmd_expand (TensorShapeRef shape) const
neml2::Tensor base_expand (TensorShapeRef shape) const
Derived batch_expand (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape={}) const
neml2::Tensor static_expand (TensorShapeRef intmd_shape, TensorShapeRef base_shape) const
Derived dynamic_expand (const TraceableSize &size, Size d) const
Derived intmd_expand (Size size, Size d) const
neml2::Tensor base_expand (Size size, Size d) const
Derived dynamic_expand_as (const neml2::Tensor &other) const
Derived intmd_expand_as (const neml2::Tensor &other) const
neml2::Tensor base_expand_as (const neml2::Tensor &other) const
Derived batch_expand_as (const neml2::Tensor &other) const
neml2::Tensor static_expand_as (const neml2::Tensor &other) const
Derived dynamic_reshape (const TraceableTensorShape &shape) const
Derived intmd_reshape (TensorShapeRef shape) const
neml2::Tensor base_reshape (TensorShapeRef shape) const
Derived batch_reshape (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape={}) const
neml2::Tensor static_reshape (TensorShapeRef intmd_shape, TensorShapeRef base_shape) const
Derived dynamic_squeeze (Size d) const
Derived intmd_squeeze (Size d) const
neml2::Tensor base_squeeze (Size d) const
Derived batch_squeeze (Size d) const
Derived dynamic_unsqueeze (Size d, Size n=1) const
Derived intmd_unsqueeze (Size d, Size n=1) const
neml2::Tensor base_unsqueeze (Size d, Size n=1) const
Derived batch_unsqueeze (Size d, Size n=1) const
Derived dynamic_transpose (Size d1, Size d2) const
Derived intmd_transpose (Size d1, Size d2) const
neml2::Tensor base_transpose (Size d1, Size d2) const
Derived batch_transpose (Size d1, Size d2) const
Derived dynamic_movedim (Size old_dim, Size new_dim) const
Derived intmd_movedim (Size old_dim, Size new_dim) const
neml2::Tensor base_movedim (Size old_dim, Size new_dim) const
Derived batch_movedim (Size old_dim, Size new_dim) const
Derived dynamic_flatten (Size start_dim=0, Size end_dim=-1) const
Derived intmd_flatten (Size start_dim=0, Size end_dim=-1) const
neml2::Tensor base_flatten (Size start_dim=0, Size end_dim=-1) const
Derived batch_flatten () const
 Flatten batch dimensions.
neml2::Tensor static_flatten () const
 Flatten static dimensions.

Additional Inherited Members

Public Types inherited from PrimitiveTensor< Derived, 3 >
using base_sizes_sequence
 Base shape sequence.
Static Public Member Functions inherited from PrimitiveTensor< Derived, 3 >
static Derived create (const TensorDataContainer &data, Size intmd_dim=0, const TensorOptions &options=default_tensor_options())
 Arbitrary tensor from a nested container with inferred batch dimension.
static Derived einsum (c10::string_view equation, TensorList tensors)
 Einstein summation along base dimensions.
static Derived empty (const TensorOptions &options=default_tensor_options())
static Derived zeros (const TensorOptions &options=default_tensor_options())
static Derived ones (const TensorOptions &options=default_tensor_options())
static Derived full (const CScalar &init, const TensorOptions &options=default_tensor_options())
static Derived rand (const TensorOptions &options=default_tensor_options())
static Derived fill (Args &&... args)
Static Public Member Functions inherited from TensorBase< Derived >
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, const CScalar &init)
static Derived rand_like (const Derived &other)
Static Public Attributes inherited from PrimitiveTensor< Derived, 3 >
static const TensorShape const_base_sizes
 The base shape.
static constexpr Size const_base_dim
 The base dim.
static constexpr Size const_base_numel
 The base numel.
Protected Member Functions inherited from PrimitiveTensor< Derived, 3 >
void validate_shapes_and_dims () const
 Validate shapes and dimensions.
Protected Member Functions inherited from TensorBase< Derived >
void validate_shapes_and_dims () const
 Validate shapes and dimensions.

Member Function Documentation

◆ drotate() [1/2]

template<class Derived>
R3 drotate ( const R2 & R) const

Derivative of the rotated vector w.r.t. the rotation matrix.

◆ drotate() [2/2]

template<class Derived>
R2 drotate ( const Rot & r) const

Derivative of the rotated vector w.r.t. the Rodrigues vector.

◆ rotate() [1/2]

template<class Derived>
Derived rotate ( const R2 & R) const

Rotate using a rotation matrix.

◆ rotate() [2/2]

template<class Derived>
Derived rotate ( const Rot & r) const

Rotate using a Rodrigues vector.