NEML2 1.4.0
|
Rotation stored as modified Rodrigues parameters. More...
Rotation stored as modified Rodrigues parameters.
The logical storage space is (3).
One way to define this convention is that the three parameters are the values of the vector n tan(theta/4) where n is the rotation axis and theta the rotation angle.
Note this is different from the standard Rodrigues parameters, which are defined by n tan(theta/2)
#include <Rot.h>
Public Member Functions | |
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. | |
Public Member Functions inherited from VecBase< Rot > | |
Scalar | operator() (TorchSize i) const |
Accessor. | |
Scalar | dot (const VecBase< Derived2 > &v) const |
dot product | |
Rot | cross (const VecBase< Derived2 > &v) const |
cross product | |
R2 | outer (const VecBase< Derived2 > &v) const |
outer product | |
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 FixedDimTensor< Derived, S > | |
FixedDimTensor ()=default | |
Default constructor. | |
FixedDimTensor (const torch::Tensor &tensor, TorchSize batch_dim) | |
Construct from another torch::Tensor given batch dimension. | |
FixedDimTensor (const torch::Tensor &tensor) | |
Construct from another torch::Tensor and infer batch dimension. | |
operator BatchTensor () const | |
Implicit conversion to a BatchTensor and loses information on the fixed base shape. | |
Public Member Functions inherited from BatchTensorBase< Derived > | |
BatchTensorBase ()=default | |
Default constructor. | |
BatchTensorBase (const torch::Tensor &tensor, TorchSize batch_dim) | |
Construct from another torch::Tensor. | |
BatchTensorBase (const Derived &tensor) | |
Copy constructor. | |
BatchTensorBase (Real)=delete | |
bool | batched () const |
Whether the tensor is batched. | |
TorchSize | batch_dim () const |
Return the number of batch dimensions. | |
TorchSize & | batch_dim () |
Return a writable reference to the batch dimension. | |
TorchSize | base_dim () const |
Return the number of base dimensions. | |
TorchShapeRef | batch_sizes () const |
Return the batch size. | |
TorchSize | batch_size (TorchSize index) const |
Return the length of some batch axis. | |
TorchShapeRef | base_sizes () const |
Return the base size. | |
TorchSize | base_size (TorchSize index) const |
Return the length of some base axis. | |
TorchSize | base_storage () const |
Return the flattened storage needed just for the base indices. | |
Derived | batch_index (TorchSlice indices) const |
Get a batch. | |
BatchTensor | base_index (const TorchSlice &indices) const |
Return an index sliced on the base dimensions. | |
void | batch_index_put (TorchSlice indices, const torch::Tensor &other) |
Set a index sliced on the batch dimensions to a value. | |
void | base_index_put (const TorchSlice &indices, const torch::Tensor &other) |
Set a index sliced on the base dimensions to a value. | |
Derived | batch_expand (TorchShapeRef batch_size) const |
Return a new view of the tensor with values broadcast along the batch dimensions. | |
BatchTensor | base_expand (TorchShapeRef base_size) const |
Return a new view of the tensor with values broadcast along the base dimensions. | |
template<class Derived2 > | |
Derived | batch_expand_as (const Derived2 &other) const |
Expand the batch to have the same shape as another tensor. | |
template<class Derived2 > | |
Derived2 | base_expand_as (const Derived2 &other) const |
Expand the base to have the same shape as another tensor. | |
Derived | batch_expand_copy (TorchShapeRef batch_size) const |
Return a new tensor with values broadcast along the batch dimensions. | |
BatchTensor | base_expand_copy (TorchShapeRef base_size) const |
Return a new tensor with values broadcast along the base dimensions. | |
Derived | batch_reshape (TorchShapeRef batch_shape) const |
Reshape batch dimensions. | |
BatchTensor | base_reshape (TorchShapeRef base_shape) const |
Reshape base dimensions. | |
Derived | batch_unsqueeze (TorchSize d) const |
Unsqueeze a batch dimension. | |
Derived | list_unsqueeze () const |
Unsqueeze on the special list batch dimension. | |
BatchTensor | base_unsqueeze (TorchSize d) const |
Unsqueeze a base dimension. | |
Derived | batch_transpose (TorchSize d1, TorchSize d2) const |
Transpose two batch dimensions. | |
BatchTensor | base_transpose (TorchSize d1, TorchSize d2) const |
Transpose two base dimensions. | |
BatchTensor | base_movedim (TorchSize d1, TorchSize d2) const |
Move two base dimensions. | |
Derived | clone (torch::MemoryFormat memory_format=torch::MemoryFormat::Contiguous) const |
Clone (take ownership) | |
Derived | detach () const |
Discard function graph. | |
Derived | to (const torch::TensorOptions &options) const |
Send to options. | |
Derived | operator- () const |
Negation. | |
Derived | batch_sum (TorchSize d) const |
Sum on a batch index. | |
Derived | list_sum () const |
Sum on the list index (TODO: replace with class) | |
Static Public Member Functions | |
static Rot | identity (const torch::TensorOptions &options=default_tensor_options()) |
The identity rotation, helpfully the zero vector. | |
Static Public Member Functions inherited from VecBase< Rot > | |
static Rot | fill (const Real &v1, const Real &v2, const Real &v3, const torch::TensorOptions &options=default_tensor_options()) |
static Rot | fill (const Scalar &v1, const Scalar &v2, const Scalar &v3) |
static R2 | identity_map (const torch::TensorOptions &options=default_tensor_options()) |
The derivative of a vector with respect to itself. | |
Static Public Member Functions inherited from FixedDimTensor< Derived, S > | |
static Derived | empty (const torch::TensorOptions &options=default_tensor_options()) |
Unbatched empty tensor. | |
static Derived | empty (TorchShapeRef batch_shape, const torch::TensorOptions &options=default_tensor_options()) |
Empty tensor given batch shape. | |
static Derived | zeros (const torch::TensorOptions &options=default_tensor_options()) |
Unbatched zero tensor. | |
static Derived | zeros (TorchShapeRef batch_shape, const torch::TensorOptions &options=default_tensor_options()) |
Zero tensor given batch shape. | |
static Derived | ones (const torch::TensorOptions &options=default_tensor_options()) |
Unbatched unit tensor. | |
static Derived | ones (TorchShapeRef batch_shape, const torch::TensorOptions &options=default_tensor_options()) |
Unit tensor given batch shape. | |
static Derived | full (Real init, const torch::TensorOptions &options=default_tensor_options()) |
Unbatched tensor filled with a given value given base shape. | |
static Derived | full (TorchShapeRef batch_shape, Real init, const torch::TensorOptions &options=default_tensor_options()) |
Full tensor given batch shape. | |
static BatchTensor | identity_map (const torch::TensorOptions &) |
Derived tensor classes should define identity_map where appropriate. | |
Static Public Member Functions inherited from BatchTensorBase< Derived > | |
static Derived | empty_like (const Derived &other) |
Empty tensor like another, i.e. same batch and base shapes, same tensor options, etc. | |
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, TorchSize nstep, TorchSize dim=0, TorchSize batch_dim=-1) |
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, TorchSize nstep, TorchSize dim=0, TorchSize batch_dim=-1, Real base=10) |
log-space equivalent of the linspace named constructor | |
Additional Inherited Members | |
Static Public Attributes inherited from FixedDimTensor< Derived, S > | |
static const TorchShape | const_base_sizes = {S...} |
The base shape. | |
static constexpr TorchSize | const_base_dim = sizeof...(S) |
The base dim. | |
static const TorchSize | const_base_storage = utils::storage_size({S...}) |
The base storage. | |
R3 deuler_rodrigues | ( | ) | const |
d(R2)/d(r) – useful in constructing other derivatives
Derivative of the rotated Rodrigues vector w.r.t. the other Rodrigues vector.
Derivative of the rotated Rodrigues vector w.r.t. this vector.
R2 dshadow | ( | ) | const |
Return the derivative of the shadow map.
R2 euler_rodrigues | ( | ) | const |
Generate a rotation matrix using the Euler-Rodrigues formula.
|
static |
The identity rotation, helpfully the zero vector.
Rot inverse | ( | ) | const |
Inversion.
Rot shadow | ( | ) | const |
Return the shadow parameter set (a set of MRPs that define the same orientation)