Skip to content

Commit

Permalink
added r**d
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicholaswogan committed Jun 27, 2024
1 parent 07f7ee6 commit 0ffaa6c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/forwarddiff_dual.f90
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ module forwarddiff_dual
interface operator (**)
module procedure :: pow_i
module procedure :: pow_dr
module procedure :: pow_rd
module procedure :: pow_dd
end interface

Expand Down Expand Up @@ -500,6 +501,14 @@ elemental function pow_dr(u, r) result(res)
res%der = r*pow_x*u%der
end function

elemental function pow_rd(r, u) result(res)
real(wp), intent(in) :: r
type(dual), intent(in) :: u
type(dual) :: res
res%val = r**u%val
res%der = log(r)*r**u%val*u%der
end function

elemental function pow_dd(u, v) result(res)
type(dual), intent(in) :: u
type(dual), intent(in) :: v
Expand Down
1 change: 1 addition & 0 deletions test/test_forwarddiff.f90
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ function func_operators(x) result(res)
res = res*x + 2.0_wp*x + x*(-5.0_wp)
res = res/x + 2.0_wp/x + x/5.0_wp
res = res**x + res**1.5_wp
res = 10.0_wp**res

end function

Expand Down
1 change: 1 addition & 0 deletions test/test_jax.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ def func_operators(x):
res = res*x + 2.0*x + x*-5.0
res = res/x + 2.0/x + x/5.0
res = res**x + res**1.5
res = 10.0**res
return res

def func_intrinsics1(x):
Expand Down

0 comments on commit 0ffaa6c

Please sign in to comment.