diff --git a/include/adscalar.h b/include/adscalar.h index 673f144..e8bcfb3 100644 --- a/include/adscalar.h +++ b/include/adscalar.h @@ -349,6 +349,17 @@ A2D_FUNCTION inline ADScalar exp(const ADScalar &r) { return out; } +template +A2D_FUNCTION inline ADScalar log(const ADScalar &r) { + // device compatible log + ADScalar out(::log(r.value)); + X inv = 1.0 / r.value; + for (int i = 0; i < M; i++) { + out.deriv[i] = inv * r.deriv[i]; + } + return out; +} + template A2D_FUNCTION inline ADScalar sin(const ADScalar &r) { // device compatible sin, cos