Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Classes | Namespaces | Enumerations | Functions
symengine_optimizer.h File Reference
#include <deal.II/base/config.h>
#include <symengine/basic.h>
#include <symengine/dict.h>
#include <symengine/symengine_exception.h>
#include <symengine/symengine_rcp.h>
#include <symengine/lambda_double.h>
#include <symengine/visitor.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/utilities.h>
#include <deal.II/differentiation/sd/symengine_number_types.h>
#include <deal.II/differentiation/sd/symengine_number_visitor_internal.h>
#include <deal.II/differentiation/sd/symengine_scalar_operations.h>
#include <deal.II/differentiation/sd/symengine_tensor_operations.h>
#include <deal.II/differentiation/sd/symengine_utilities.h>
#include <boost/serialization/split_member.hpp>
#include <boost/type_traits.hpp>
#include <algorithm>
#include <map>
#include <memory>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  Differentiation::SD::BatchOptimizer< ReturnType >
 
struct  Differentiation::SD::internal::DictionaryOptimizer< ReturnType, T >
 
struct  Differentiation::SD::internal::LambdaOptimizer< ReturnType, T >
 
struct  Differentiation::SD::internal::OptimizerHelper< ReturnType, Optimizer, T >
 
class  Differentiation::SD::BatchOptimizer< ReturnType >
 

Namespaces

 Differentiation
 
 Differentiation::SD
 
 Differentiation::SD::internal
 

Enumerations

enum  Differentiation::SD::OptimizerType { Differentiation::SD::OptimizerType::dictionary, Differentiation::SD::OptimizerType::lambda, Differentiation::SD::OptimizerType::llvm }
 
enum  Differentiation::SD::OptimizationFlags : unsigned char { Differentiation::SD::OptimizationFlags::optimize_default = 0, Differentiation::SD::OptimizationFlags::optimize_cse = 0x0001, Differentiation::SD::OptimizationFlags::optimize_aggressive = 0x0002, Differentiation::SD::OptimizationFlags::optimize_all = optimize_cse | optimize_aggressive }
 

Functions

static ::ExceptionBaseDifferentiation::SD::ExcSymEngineLLVMNotAvailable ()
 
static ::ExceptionBaseDifferentiation::SD::ExcSymEngineLLVMReturnTypeNotSupported ()
 
template<class StreamType >
StreamType & Differentiation::SD::operator<< (StreamType &s, OptimizerType o)
 
OptimizationFlags Differentiation::SD::operator| (const OptimizationFlags f1, const OptimizationFlags f2)
 
OptimizationFlags & Differentiation::SD::operator|= (OptimizationFlags &f1, const OptimizationFlags f2)
 
OptimizationFlags Differentiation::SD::operator& (const OptimizationFlags f1, const OptimizationFlags f2)
 
OptimizationFlags & Differentiation::SD::operator&= (OptimizationFlags &f1, const OptimizationFlags f2)
 
bool Differentiation::SD::internal::use_symbolic_CSE (const enum OptimizationFlags &flags)
 
int Differentiation::SD::internal::get_LLVM_optimization_level (const enum OptimizationFlags &flags)
 
template<class StreamType >
StreamType & Differentiation::SD::operator<< (StreamType &s, OptimizationFlags o)
 
template<typename NumberType , int rank, int dim, template< int, int, typename > class TensorType>
TensorType< rank, dim, NumberType > Differentiation::SD::internal::tensor_evaluate_optimized (const TensorType< rank, dim, Expression > &symbol_tensor, const BatchOptimizer< NumberType > &optimizer)
 
template<typename NumberType , int dim>
SymmetricTensor< 4, dim, NumberType > Differentiation::SD::internal::tensor_evaluate_optimized (const SymmetricTensor< 4, dim, Expression > &symbol_tensor, const BatchOptimizer< NumberType > &optimizer)
 
template<typename NumberType , typename T >
void Differentiation::SD::internal::register_functions (BatchOptimizer< NumberType > &optimizer, const T &function)
 
template<typename NumberType , typename T >
void Differentiation::SD::internal::register_functions (BatchOptimizer< NumberType > &optimizer, const std::vector< T > &functions)
 
template<typename NumberType , typename T , typename... Args>
void Differentiation::SD::internal::register_functions (BatchOptimizer< NumberType > &optimizer, const T &function, const Args &... other_functions)
 
template<int rank, int dim, template< int, int, typename > class TensorType>
types::symbol_vector Differentiation::SD::internal::unroll_to_expression_vector (const TensorType< rank, dim, Expression > &symbol_tensor)
 
template<int dim>
types::symbol_vector Differentiation::SD::internal::unroll_to_expression_vector (const SymmetricTensor< 4, dim, Expression > &symbol_tensor)