PolyFEM
Loading...
Searching...
No Matches
AutodiffTypes.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include "autodiff.h"
6
7namespace polyfem
8{
9
11 typedef DScalar2<double, Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 3, 1>, Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, 3, 3>> AutodiffScalarHessian;
12
13 typedef Eigen::Matrix<AutodiffScalarGrad, Eigen::Dynamic, 1, 0, 3, 1> AutodiffGradPt;
14 typedef Eigen::Matrix<AutodiffScalarHessian, Eigen::Dynamic, 1, 0, 3, 1> AutodiffHessianPt;
15
16 // typedef DScalar1<double, Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 3, 1>> AutodiffPt;
17
18 template <class T>
20 {
21 public:
22 T operator()(const int i, double v) const
23 {
24 return T(i, v);
25 }
26 };
27
28 template <>
29 class AutoDiffAllocator<double>
30 {
31 public:
32 double operator()(const int i, double v) const
33 {
34 return v;
35 }
36 };
37} // namespace polyfem
double operator()(const int i, double v) const
T operator()(const int i, double v) const
Eigen::Matrix< AutodiffScalarHessian, Eigen::Dynamic, 1, 0, 3, 1 > AutodiffHessianPt
DScalar2< double, Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 >, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, 3, 3 > > AutodiffScalarHessian
DScalar1< double, Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 > > AutodiffScalarGrad
Eigen::Matrix< AutodiffScalarGrad, Eigen::Dynamic, 1, 0, 3, 1 > AutodiffGradPt
Automatic differentiation scalar with first-order derivatives.
Definition autodiff.h:112
Automatic differentiation scalar with first- and second-order derivatives.
Definition autodiff.h:493