Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
autodiff.h File Reference
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <cmath>
#include <stdexcept>

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
 
#define EIGEN_NO_DEBUG
 
#define __tls_decl   __thread
 
#define DECLARE_DIFFSCALAR_BASE()   __tls_decl 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

#define __tls_decl   __thread
#define DECLARE_DIFFSCALAR_BASE ( )    __tls_decl size_t DiffScalarBase::m_variableCount = 0
#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

#define EIGEN_NO_DEBUG

Function Documentation

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 
)