|
Theoretica
Mathematical Library
|
Second order dual number class. More...
#include <dual2.h>
Public Member Functions | |
| dual2 () | |
| Default constructor, initialize with null values. | |
| dual2 (real real_part, real dual1_part, real dual2_part) | |
| Initialize from two real numbers. | |
| dual2 (real real_part, real dual1_part) | |
| Initialize from two real numbers. | |
| dual2 (real real_part) | |
| Initialize from a real number. | |
| dual2 (const vec3 &v) | |
| Initialize from a vec3. | |
| dual2 & | operator= (const vec3 &v) |
| Initialize a dual number from a vec3. | |
| dual2 & | operator= (real x) |
| Initialize a dual number from a real number. | |
| dual2 & | operator= (const std::array< real, 3 > &v) |
| Initialize a dual number from a std::array. | |
| real | Re () const |
| Return real part. | |
| real | Dual1 () const |
| Return first order dual part. | |
| real | Dual2 () const |
| Return second order dual part. | |
| dual2 | conjugate () const |
| Get the dual conjugate. | |
| dual2 | inverse () const |
| Get the inverse of a dual number. | |
| dual2 | operator+ () const |
| Identity (for consistency) | |
| dual2 | operator+ (const dual2 &other) const |
| Sum two dual numbers. | |
| dual2 | operator+ (real r) const |
| Sum a real number to a dual number. | |
| dual2 | operator- () const |
| Get the opposite of a dual number. | |
| dual2 | operator- (const dual2 &other) const |
| Subtract two dual numbers. | |
| dual2 | operator- (real r) const |
| Subtract a real number from a dual number. | |
| dual2 | operator* (const dual2 &other) const |
| Multiply two dual numbers. | |
| dual2 | operator* (real r) const |
| Multiply a dual number by a real number. | |
| dual2 | operator/ (const dual2 &other) const |
| Dual division. | |
| dual2 | operator/ (real r) const |
| Divide a dual number by a real number. | |
| dual2 & | operator+= (const dual2 &other) |
| Add a dual2 number from this one. | |
| dual2 & | operator+= (real r) |
| Sum a real number to this dual number. | |
| dual2 & | operator-= (const dual2 &other) |
| Subtract a real number from this one. | |
| dual2 & | operator-= (real r) |
| Subtract a real number from this dual number. | |
| dual2 & | operator*= (const dual2 &other) |
| Multiply this dual number by another one. | |
| dual2 & | operator*= (real r) |
| Multiply this dual number by a real number. | |
| dual2 & | operator/= (const dual2 &other) |
| Divide this dual number by another one. | |
| dual2 & | operator/= (real r) |
| Divide a dual number by a real number. | |
| bool | operator== (const dual2 &other) |
| Check whether two dual numbers have the same real and dual parts. | |
| vec3 | to_vec () const |
| Convert a dual number to a vector. | |
| void | from_vec (const vec3 &v) |
| Initialize from a vector. | |
| std::string | to_string (const std::string &epsilon1="e1", const std::string &epsilon2="e2") const |
| Convert the dual number to string representation. | |
| operator std::string () | |
| Convert the dual number to string representation. | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const dual2 &obj) |
| Stream the dual number in string representation to an output stream (std::ostream) | |
Second order dual number class.
Implemented as \(a + b * \epsilon_1 + c * \epsilon_2\) where epsilon is such that \(\epsilon_1^3 = 0\) and \(\epsilon_1 * \epsilon_2 = 0\)
|
inline |
Convert the dual number to string representation.
| epsilon1 | The character to use to represent epsilon1 |
| epsilon2 | The character to use to represent epsilon2 |