PolyFEM
Loading...
Searching...
No Matches
autodiff.h File Reference
#include <Eigen/Core>
#include <cmath>
#include <stdexcept>
Include dependency graph for autodiff.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DiffScalarBase
 Base class of all automatic differentiation types. More...
 
struct  DScalar1< _Scalar, _Gradient >
 Automatic differentiation scalar with first-order derivatives. More...
 
struct  DScalar2< _Scalar, _Gradient, _Hessian >
 Automatic differentiation scalar with first- and second-order derivatives. More...
 

Macros

#define EIGEN_DONT_PARALLELIZE
 Automatic differentiation data type for C++, depends on the Eigen linear algebra library.
 
#define DECLARE_DIFFSCALAR_BASE()    thread_local size_t DiffScalarBase::m_variableCount = 0
 

Functions

template<typename Scalar , typename VecType >
std::ostream & operator<< (std::ostream &out, const DScalar1< Scalar, VecType > &s)
 
template<typename Scalar , typename VecType , typename MatType >
std::ostream & operator<< (std::ostream &out, const DScalar2< Scalar, VecType, MatType > &s)
 

Macro Definition Documentation

◆ DECLARE_DIFFSCALAR_BASE

#define DECLARE_DIFFSCALAR_BASE ( )     thread_local size_t DiffScalarBase::m_variableCount = 0

Definition at line 84 of file autodiff.h.

◆ EIGEN_DONT_PARALLELIZE

#define EIGEN_DONT_PARALLELIZE

Automatic differentiation data type for C++, depends on the Eigen linear algebra library.

Copyright (c) 2012 by Wenzel Jakob. Based on code by Jon Kaldor and Eitan Grinspun.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Definition at line 27 of file autodiff.h.

Function Documentation

◆ operator<<() [1/2]

template<typename Scalar , typename VecType >
std::ostream & operator<< ( std::ostream &  out,
const DScalar1< Scalar, VecType > &  s 
)

Definition at line 459 of file autodiff.h.

References DScalar1< _Scalar, _Gradient >::getGradient(), and DScalar1< _Scalar, _Gradient >::getValue().

Here is the call graph for this function:

◆ operator<<() [2/2]

template<typename Scalar , typename VecType , typename MatType >
std::ostream & operator<< ( std::ostream &  out,
const DScalar2< Scalar, VecType, MatType > &  s 
)

Definition at line 969 of file autodiff.h.

References DScalar2< _Scalar, _Gradient, _Hessian >::getGradient(), DScalar2< _Scalar, _Gradient, _Hessian >::getHessian(), and DScalar2< _Scalar, _Gradient, _Hessian >::getValue().

Here is the call graph for this function: