NEML2 2.0.0
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Orientation Class Reference

Create batch of rotations, with various methods. More...

Detailed Description

Create batch of rotations, with various methods.

#include <Orientation.h>

Inheritance diagram for Orientation:

Public Member Functions

 Orientation (const OptionSet &options)
 Construct a new Orientation object.
 
- Public Member Functions inherited from Rot
 Rot (const Vec &v)
 
Rot inverse () const
 Inversion.
 
R2 euler_rodrigues () const
 Generate a rotation matrix using the Euler-Rodrigues formula.
 
R3 deuler_rodrigues () const
 d(R2)/d(r) – useful in constructing other derivatives
 
Rot rotate (const Rot &r) const
 Rotate.
 
R2 drotate (const Rot &r) const
 Derivative of the rotated Rodrigues vector w.r.t. the other Rodrigues vector.
 
R2 drotate_self (const Rot &r) const
 Derivative of the rotated Rodrigues vector w.r.t. this vector.
 
Rot shadow () const
 Return the shadow parameter set (a set of MRPs that define the same orientation)
 
R2 dshadow () const
 Return the derivative of the shadow map.
 
Scalar dist (const Rot &r) const
 Distance measure between two rotations, accounting for shadow mapping.
 
Scalar gdist (const Rot &r) const
 Raw distance formula, not accounting for shadown mapping.
 
Scalar dV () const
 Volume element at locations.
 
- Public Member Functions inherited from VecBase< Rot >
Scalar operator() (Size i) const
 Accessor.
 
Scalar norm_sq () const
 Norm squared.
 
Scalar norm () const
 Norm.
 
Rot rotate (const Rot &r) const
 Rotate using a Rodrigues vector.
 
Rot 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< Rot, 3 >
 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.
 
- Public Member Functions inherited from TensorBase< Rot >
 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
 
Rot variable_data () const
 
Rot clone () const
 
Rot detach () const
 Discard function graph.
 
Rot to (const TensorOptions &options) const
 Change tensor options.
 
Rot 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 TraceableTensorShapebatch_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.
 
Rot 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.
 
Rot 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)
 
Rot batch_expand (const TraceableTensorShape &batch_shape) const
 
Rot 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.
 
Rot 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.
 
Rot 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.
 
Rot batch_reshape (const TraceableTensorShape &batch_shape) const
 Reshape batch dimensions.
 
neml2::Tensor base_reshape (TensorShapeRef base_shape) const
 Reshape base dimensions.
 
Rot batch_unsqueeze (Size d) const
 Unsqueeze a batch dimension.
 
neml2::Tensor base_unsqueeze (Size d) const
 Unsqueeze a base dimension.
 
Rot 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.
 
- Public Member Functions inherited from UserTensorBase
 UserTensorBase (const OptionSet &options)
 
- Public Member Functions inherited from NEML2Object
 NEML2Object ()=delete
 
 NEML2Object (NEML2Object &&)=delete
 
 NEML2Object (const NEML2Object &)=delete
 
NEML2Objectoperator= (NEML2Object &&)=delete
 
NEML2Objectoperator= (const NEML2Object &)=delete
 
virtual ~NEML2Object ()=default
 
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
const OptionSetinput_options () const
 
virtual void setup ()
 Setup this object.
 
const std::string & name () const
 A readonly reference to the object's name.
 
const std::string & type () const
 A readonly reference to the object's type.
 
const std::string & path () const
 A readonly reference to the object's path.
 
const std::string & doc () const
 A readonly reference to the object's docstring.
 
template<typename T = NEML2Object>
const T * host () const
 Get a readonly pointer to the host.
 
template<typename T = NEML2Object>
T * host ()
 Get a writable pointer to the host.
 

Static Public Member Functions

static OptionSet expected_options ()
 
- Static Public Member Functions inherited from Rot
static Rot identity (const TensorOptions &options=default_tensor_options())
 The identity rotation, helpfully the zero vector.
 
static Rot fill_euler_angles (const Vec &v, const std::string &angle_convention, const std::string &angle_type)
 Fill from an array of Euler angles.
 
static Rot fill_matrix (const R2 &M)
 Fill from rotation matrices.
 
static Rot fill_random (unsigned int n)
 Fill some number of random orientations.
 
static Rot fill_rodrigues (const Scalar &rx, const Scalar &ry, const Scalar &rz)
 Fill from standard Rodrigues parameters.
 
- Static Public Member Functions inherited from VecBase< Rot >
static Rot fill (const Real &v1, const Real &v2, const Real &v3, const TensorOptions &options=default_tensor_options())
 
static Rot fill (const Scalar &v1, const Scalar &v2, const Scalar &v3)
 
static R2 identity_map (const TensorOptions &options=default_tensor_options())
 The derivative of a vector with respect to itself.
 
- Static Public Member Functions inherited from PrimitiveTensor< Rot, 3 >
static Rot create (const TensorDataContainer &data, const TensorOptions &options=default_tensor_options())
 Arbitrary tensor from a nested container with inferred batch dimension.
 
static Rot empty (const TensorOptions &options=default_tensor_options())
 Unbatched empty tensor.
 
static Rot empty (const TraceableTensorShape &batch_shape, const TensorOptions &options=default_tensor_options())
 Empty tensor given batch shape.
 
static Rot zeros (const TensorOptions &options=default_tensor_options())
 Unbatched zero tensor.
 
static Rot zeros (const TraceableTensorShape &batch_shape, const TensorOptions &options=default_tensor_options())
 Zero tensor given batch shape.
 
static Rot ones (const TensorOptions &options=default_tensor_options())
 Unbatched unit tensor.
 
static Rot ones (const TraceableTensorShape &batch_shape, const TensorOptions &options=default_tensor_options())
 Unit tensor given batch shape.
 
static Rot full (Real init, const TensorOptions &options=default_tensor_options())
 Unbatched tensor filled with a given value given base shape.
 
static Rot 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 Public Member Functions inherited from TensorBase< Rot >
static Rot empty_like (const Rot &other)
 
static Rot zeros_like (const Rot &other)
 Zero tensor like another, i.e. same batch and base shapes, same tensor options, etc.
 
static Rot ones_like (const Rot &other)
 Unit tensor like another, i.e. same batch and base shapes, same tensor options, etc.
 
static Rot full_like (const Rot &other, Real init)
 
static Rot linspace (const Rot &start, const Rot &end, Size nstep, Size dim=0)
 Create a new tensor by adding a new batch dimension with linear spacing between start and end.
 
static Rot logspace (const Rot &start, const Rot &end, Size nstep, Size dim=0, Real base=10)
 log-space equivalent of the linspace named constructor
 
- Static Public Member Functions inherited from UserTensorBase
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()
 

Additional Inherited Members

- Static Public Attributes inherited from PrimitiveTensor< Rot, 3 >
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.
 

Constructor & Destructor Documentation

◆ Orientation()

Orientation ( const OptionSet & options)

Construct a new Orientation object.

Member Function Documentation

◆ expected_options()

OptionSet expected_options ( )
static