diff --git a/dune/gfe/Makefile.am b/dune/gfe/Makefile.am index 47e42cc0588993b0b81ef7febc75df0e7a6250c2..ad63f32928509b35eb248b080c6a1a1c5011cd88 100644 --- a/dune/gfe/Makefile.am +++ b/dune/gfe/Makefile.am @@ -5,7 +5,8 @@ SUBDIRS = coupling AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/.. srcincludedir = $(includedir)/dune/common -srcinclude_HEADERS = averagedistanceassembler.hh \ +srcinclude_HEADERS = adolcnamespaceinjections.hh \ + averagedistanceassembler.hh \ averageinterface.hh \ cosseratvtkwriter.hh \ geodesicdifference.hh \ diff --git a/dune/gfe/adolcnamespaceinjections.hh b/dune/gfe/adolcnamespaceinjections.hh new file mode 100644 index 0000000000000000000000000000000000000000..dc74ba144bd6804fdb3f74c87562a624e59b383c --- /dev/null +++ b/dune/gfe/adolcnamespaceinjections.hh @@ -0,0 +1,68 @@ +#ifndef DUNE_GFE_ADOLC_NAMESPACE_INJECTIONS_HH +#define DUNE_GFE_ADOLC_NAMESPACE_INJECTIONS_HH + +adouble sqrt_hack(adouble a) { + return sqrt(a); +} + +adouble pow_hack(const adouble& a, const adouble& b) { + return pow(a,b); +} + +adouble pow_hack(const adouble& a, double b) { + return pow(a,b); +} + +namespace std +{ + adouble min(adouble a, adouble b) { + return fmin(a,b); + } + + adouble max(adouble a, adouble b) { + return fmax(a,b); + } + + adouble sqrt(adouble a) { + return sqrt_hack(a); + } + + adouble abs(adouble a) { + return fabs(a); + } + +// adouble fabs(adouble a) { +// return fabs(a); +// } + + adouble pow(const adouble& a, const adouble& b) { + return pow_hack(a,b); + } + + adouble pow(const adouble& a, double b) { + return pow_hack(a,b); + } + + adouble sin(adouble a) { + return sin(a); + } + + adouble cos(adouble a) { + return cos(a); + } + + adouble acos(adouble a) { + return acos(a); + } + + bool isnan(adouble a) { + return std::isnan(a.value()); + } + + bool isinf(adouble a) { + return std::isinf(a.value()); + } + +} + +#endif \ No newline at end of file