MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Utility methods for calculating derivatives of TMP metrics. More...
Go to the source code of this file.
Namespaces | |
namespace | MBMesquite |
Implements the NonSmoothDescent class member functions. | |
Defines | |
#define | MSQ_ROW_BASED_OUTER_PRODUCT |
Functions | |
template<unsigned D> | |
void | MBMesquite::hess_scale_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha) |
\( R *= s \) | |
void | MBMesquite::hess_scale (MsqMatrix< 3, 3 > R[6], double alpha) |
void | MBMesquite::hess_scale (MsqMatrix< 2, 2 > R[3], double alpha) |
void | MBMesquite::set_scaled_I (MsqMatrix< 3, 3 > R[6], double alpha) |
\( R = \alpha I_9 \) | |
void | MBMesquite::pluseq_scaled_I (MsqMatrix< 3, 3 > R[6], double alpha) |
\( R += \alpha I_9 \) | |
void | MBMesquite::pluseq_scaled_I (MsqMatrix< 3, 3 > &R, double alpha) |
\( R += \alpha I_9 \) | |
void | MBMesquite::set_scaled_I (MsqMatrix< 2, 2 > R[3], double alpha) |
\( R = \alpha I_4 \) | |
void | MBMesquite::pluseq_scaled_I (MsqMatrix< 2, 2 > R[3], double alpha) |
\( R += \alpha I_4 \) | |
void | MBMesquite::pluseq_scaled_I (MsqMatrix< 2, 2 > &R, double alpha) |
\( R += \alpha I_4 \) | |
void | MBMesquite::pluseq_scaled_2nd_deriv_of_det (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &T) |
\( R += \alpha \frac{\partial}{\partial T}det(T) \) | |
void | MBMesquite::pluseq_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha) |
\( R += \alpha \frac{\partial}{\partial T}det(T) \) | |
void | MBMesquite::pluseq_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &) |
void | MBMesquite::set_scaled_2nd_deriv_of_det (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &T) |
\( R = \alpha \frac{\partial}{\partial T}det(T) \) | |
void | MBMesquite::set_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha) |
\( R = \alpha \frac{\partial}{\partial T}det(T) \) | |
void | MBMesquite::set_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &) |
void | MBMesquite::pluseq_scaled_2nd_deriv_tr_adj (MsqMatrix< 2, 2 > R[3], double alpha) |
\( R += \alpha \frac{\partial^2}{\partial T^2}tr(adj T) \) | |
void | MBMesquite::pluseq_scaled_2nd_deriv_tr_adj (MsqMatrix< 3, 3 > R[6], double alpha) |
\( R += \alpha \frac{\partial^2}{\partial T^2}tr(adj T) \) | |
void | MBMesquite::set_scaled_2nd_deriv_norm_sqr_adj (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &T) |
\( R += \alpha \frac{\partial^2}{\partial T^2}|adj T|^2 \) | |
void | MBMesquite::set_scaled_2nd_deriv_norm_sqr_adj (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &T) |
\( R += \alpha \frac{\partial^2}{\partial T^2}|adj T|^2 \) | |
template<unsigned D> | |
void | MBMesquite::pluseq_scaled_outer_product_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > &M) |
\( R += \alpha \left( M \otimes M \right) \) | |
void | MBMesquite::pluseq_scaled_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &M) |
void | MBMesquite::pluseq_scaled_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &M) |
template<unsigned D> | |
void | MBMesquite::set_scaled_outer_product_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > &M) |
\( R = \alpha \left( M \otimes M \right) \) | |
void | MBMesquite::set_scaled_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &M) |
void | MBMesquite::set_scaled_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &M) |
void | MBMesquite::pluseq_scaled_sum_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &A, const MsqMatrix< 3, 3 > &B) |
\( R += \alpha \left( A \otimes B + B \otimes A \right) \) | |
void | MBMesquite::pluseq_scaled_sum_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &A, const MsqMatrix< 2, 2 > &B) |
\( R += \alpha \left( A \otimes B + B \otimes A \right) \) | |
void | MBMesquite::set_scaled_sum_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &A, const MsqMatrix< 3, 3 > &B) |
\( R = \alpha \left( A \otimes B + B \otimes A \right) \) | |
void | MBMesquite::set_scaled_sum_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &A, const MsqMatrix< 2, 2 > &B) |
\( R = \alpha \left( A \otimes B + B \otimes A \right) \) | |
void | MBMesquite::pluseq_scaled_outer_product_I_I (MsqMatrix< 3, 3 > R[6], double alpha) |
\( R += \alpha (I \otimes I) \) | |
void | MBMesquite::pluseq_scaled_outer_product_I_I (MsqMatrix< 2, 2 > R[3], double alpha) |
\( R += \alpha (I \otimes I) \) | |
void | MBMesquite::pluseq_I_outer_product (MsqMatrix< 3, 3 > R[6], const MsqMatrix< 3, 3 > &A) |
\( R += I \otimes A \) | |
void | MBMesquite::pluseq_outer_product_I (MsqMatrix< 3, 3 > R[6], const MsqMatrix< 3, 3 > &A) |
\( R += A \otimes I \) | |
template<unsigned D> | |
void | MBMesquite::pluseq_scaled_sum_outer_product_I_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > &A) |
\( R += \alpha \left( I \otimes A + A \otimes I \right) \) | |
void | MBMesquite::pluseq_scaled_sum_outer_product_I (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &A_in) |
void | MBMesquite::pluseq_scaled_sum_outer_product_I (MsqMatrix< 2, 2 > R[2], double alpha, const MsqMatrix< 2, 2 > &A_in) |
template<unsigned D> | |
void | MBMesquite::second_deriv_wrt_product_factor_t (MsqMatrix< D, D > R[D *(D+1)/2], const MsqMatrix< D, D > &Z) |
\( \frac{\partial^2 f}{\partial (AZ)^2} \Rightarrow \frac{\partial^2 f}{\partial A^2} \) | |
void | MBMesquite::second_deriv_wrt_product_factor (MsqMatrix< 3, 3 > R[6], const MsqMatrix< 3, 3 > &Z) |
void | MBMesquite::second_deriv_wrt_product_factor (MsqMatrix< 2, 2 > R[3], const MsqMatrix< 2, 2 > &Z) |
void | MBMesquite::set_scaled_2nd_deriv_wrt_psi (MsqMatrix< 2, 2 > R[3], const double alpha, const double psi, const MsqMatrix< 2, 2 > &T) |
\( R = \alpha * \frac{\partial^2 \psi(T)}{\partial T^2} \) | |
template<unsigned D> | |
void | MBMesquite::pluseq_scaled_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > Z[D *(D+1)/2]) |
\( R = R + \alpha * Z \) | |
void | MBMesquite::pluseq_scaled_2nd_deriv_tr_adj (MsqMatrix< 2, 2 > *, double) |
void | MBMesquite::pluseq_I_outer_product (MsqMatrix< 2, 2 > R[3], const MsqMatrix< 2, 2 > &A) |
void | MBMesquite::pluseq_outer_product_I (MsqMatrix< 2, 2 > R[3], const MsqMatrix< 2, 2 > &A) |
template<unsigned D> | |
void | MBMesquite::pluseq_scaled (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > Z[D *(D+1)/2]) |
Utility methods for calculating derivatives of TMP metrics.
Definition in file TMPDerivs.hpp.
#define MSQ_ROW_BASED_OUTER_PRODUCT |
If defined, then \( (A \otimes B)_{i,j} = row(A,i)^t \otimes row(B,j) \) otherwise \( (A \otimes B)_{i,j} = column(A,i) \otimes column(B,j)^t \)
Definition at line 41 of file TMPDerivs.hpp.