code: def _torch_linalg_svdvals(input: Tensor) -> Tensor:
      """Helper function to make torch.linalg.svdvals work with other than fp32/64.
  
      The function torch.svd is only implemented for fp32/64 which makes
      impossible to be used by fp16 or others. What this function does, is cast
      input data type to fp32, apply torch.svd, and cast back to the input dtype.
  
      NOTE: in torch 1.8.1 this function is recommended to use as torch.linalg.svd
      """
      if not isinstance(input, Tensor):
          raise AssertionError(
              f"Input must be Tensor. Got: {type(input)}."
          )
      dtype: torch.dtype = input.dtype
      if dtype not in (torch.float32, torch.float64):
          dtype = torch.float32
  
      if TYPE_CHECKING:
          # TODO: remove this branch when kornia relies on torch >= 1.10
          out: Tensor
      elif torch_version_ge(1, 10):
          out = torch.linalg.svdvals(input.to(dtype))
      else:
          # TODO: remove this branch when kornia relies on torch >= 1.10
          _, out, _ = torch.linalg.svd(input.to(dtype))
      return out.to(input.dtype)
  
imports: import platform
  import sys
  import warnings
  from functools import wraps
  from inspect import isclass, isfunction
  from typing import TYPE_CHECKING, Any, Callable, List, Optional, Tuple, Union, overload
  import torch
  from torch.linalg import inv_ex
  from kornia.core import Tensor
  from kornia.utils._compat import torch_version_ge
label_desc: Use image node_id 12 for calling a global function with example usage: _torch_linalg_svdvals(input) and returns: out