Overloads exponentiation operator for a tensor and a scalar of type int64
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(torch_tensor), | intent(in) | :: | tensor | |||
integer(kind=int64), | intent(in), | target | :: | power |
function torch_tensor_power_int64(tensor, power) result(output) use, intrinsic :: iso_c_binding, only : c_associated, c_loc use, intrinsic :: iso_fortran_env, only : int64 type(torch_tensor), intent(in) :: tensor integer(int64), target, intent(in) :: power type(torch_tensor) :: output interface subroutine torch_tensor_power_int_c(output_c, tensor_c, power_c) & bind(c, name = 'torch_tensor_power_int') use, intrinsic :: iso_c_binding, only : c_ptr implicit none type(c_ptr), value, intent(in) :: output_c type(c_ptr), value, intent(in) :: tensor_c type(c_ptr), value, intent(in) :: power_c end subroutine torch_tensor_power_int_c end interface if (.not. c_associated(output%p)) then call torch_tensor_empty(output, tensor%get_rank(), tensor%get_shape(), tensor%get_dtype(), & tensor%get_device_type(), device_index=tensor%get_device_index(), & requires_grad=tensor%requires_grad()) end if call torch_tensor_power_int_c(output%p, tensor%p, c_loc(power)) end function torch_tensor_power_int64