code: def vander(
      x: torch.tensor,
      /,
      *,
      N: Optional[int] = None,
      increasing: bool = False,
      out: Optional[torch.tensor] = None,
  ) -> torch.tensor:
      # torch.vander hasn't been used as it produces 0 gradients
      N = ivy.default(N, x.shape[-1])
      start, stop, step = N - 1, -1, -1
      if increasing:
          start, stop, step = 0, N, 1
      ret = torch.pow(
          torch.transpose(torch.unsqueeze(x, 0), 0, 1),
          torch.arange(start, stop, step),
          out=out,
      )
      if ret.dtype != x.dtype:
          return ret.to(x.dtype)
      return ret
  
imports: import torch
  from typing import Union, Optional, Tuple, Literal, List, NamedTuple, Sequence
  from collections import namedtuple
  import ivy
  from ivy import inf
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from .None import backend_version
  from .elementwise import _cast_for_unary_op
label_desc: Use image node_id 28 for calling a global function with example usage: vander() and returns: ret, ret