torch_tensor_get_rank Function

public function torch_tensor_get_rank(self) result(rank)

Determines the rank of a tensor.

Type Bound

torch_tensor

Arguments

Type IntentOptional Attributes Name
class(torch_tensor), intent(in) :: self

Tensor to get the rank of

Return Value integer(kind=int32)

Rank of tensor


Called by

proc~~torch_tensor_get_rank~~CalledByGraph proc~torch_tensor_get_rank torch_tensor%torch_tensor_get_rank proc~torch_tensor_add torch_tensor_add proc~torch_tensor_add->proc~torch_tensor_get_rank proc~torch_tensor_get_shape torch_tensor%torch_tensor_get_shape proc~torch_tensor_add->proc~torch_tensor_get_shape proc~torch_tensor_assign torch_tensor_assign proc~torch_tensor_assign->proc~torch_tensor_get_rank proc~torch_tensor_assign->proc~torch_tensor_get_shape proc~torch_tensor_backward torch_tensor_backward proc~torch_tensor_backward->proc~torch_tensor_get_rank proc~torch_tensor_backward->proc~torch_tensor_get_shape proc~torch_tensor_divide torch_tensor_divide proc~torch_tensor_divide->proc~torch_tensor_get_rank proc~torch_tensor_divide->proc~torch_tensor_get_shape proc~torch_tensor_get_shape->proc~torch_tensor_get_rank proc~torch_tensor_multiply torch_tensor_multiply proc~torch_tensor_multiply->proc~torch_tensor_get_rank proc~torch_tensor_multiply->proc~torch_tensor_get_shape proc~torch_tensor_negative torch_tensor_negative proc~torch_tensor_negative->proc~torch_tensor_get_rank proc~torch_tensor_negative->proc~torch_tensor_get_shape proc~torch_tensor_power_int16 torch_tensor_power_int16 proc~torch_tensor_power_int16->proc~torch_tensor_get_rank proc~torch_tensor_power_int16->proc~torch_tensor_get_shape proc~torch_tensor_power_int32 torch_tensor_power_int32 proc~torch_tensor_power_int32->proc~torch_tensor_get_rank proc~torch_tensor_power_int32->proc~torch_tensor_get_shape proc~torch_tensor_power_int64 torch_tensor_power_int64 proc~torch_tensor_power_int64->proc~torch_tensor_get_rank proc~torch_tensor_power_int64->proc~torch_tensor_get_shape proc~torch_tensor_power_int8 torch_tensor_power_int8 proc~torch_tensor_power_int8->proc~torch_tensor_get_rank proc~torch_tensor_power_int8->proc~torch_tensor_get_shape proc~torch_tensor_power_real32 torch_tensor_power_real32 proc~torch_tensor_power_real32->proc~torch_tensor_get_rank proc~torch_tensor_power_real32->proc~torch_tensor_get_shape proc~torch_tensor_power_real64 torch_tensor_power_real64 proc~torch_tensor_power_real64->proc~torch_tensor_get_rank proc~torch_tensor_power_real64->proc~torch_tensor_get_shape proc~torch_tensor_subtract torch_tensor_subtract proc~torch_tensor_subtract->proc~torch_tensor_get_rank proc~torch_tensor_subtract->proc~torch_tensor_get_shape proc~torch_tensor_to torch_tensor_to proc~torch_tensor_to->proc~torch_tensor_get_rank proc~torch_tensor_to->proc~torch_tensor_get_shape interface~assignment (=) assignment (=) interface~assignment (=)->proc~torch_tensor_assign interface~operator (+) operator (+) interface~operator (+)->proc~torch_tensor_add interface~operator (-) operator (-) interface~operator (-)->proc~torch_tensor_negative interface~operator (-)->proc~torch_tensor_subtract interface~operator (ASTERISK) operator (*) interface~operator (ASTERISK)->proc~torch_tensor_multiply interface~operator (ASTERISKASTERISK) operator (**) interface~operator (ASTERISKASTERISK)->proc~torch_tensor_power_int16 interface~operator (ASTERISKASTERISK)->proc~torch_tensor_power_int32 interface~operator (ASTERISKASTERISK)->proc~torch_tensor_power_int64 interface~operator (ASTERISKASTERISK)->proc~torch_tensor_power_int8 interface~operator (ASTERISKASTERISK)->proc~torch_tensor_power_real32 interface~operator (ASTERISKASTERISK)->proc~torch_tensor_power_real64 interface~operator (SLASH) operator (/) interface~operator (SLASH)->proc~torch_tensor_divide

Source Code

  function torch_tensor_get_rank(self) result(rank)
    class(torch_tensor), intent(in) :: self  !! Tensor to get the rank of
    integer(kind=int32) :: rank              !! Rank of tensor

    interface
      function torch_tensor_get_rank_c(tensor_c) result(rank_c) &
          bind(c, name = 'torch_tensor_get_rank')
        use, intrinsic :: iso_c_binding, only : c_int, c_ptr
        implicit none
        type(c_ptr), value, intent(in) :: tensor_c
        integer(c_int) :: rank_c
      end function torch_tensor_get_rank_c
    end interface

    if (.not. c_associated(self%p)) then
      write(*,*) "Error :: tensor has not been constructed so its rank is unset"
      stop 1
    end if
    rank = torch_tensor_get_rank_c(self%p)
  end function torch_tensor_get_rank