code: def _reduced_svd(
      A: TallSkinnyMatrix,
      k=10,
      compute_U=False,
      iterations=2,
      iteration_size=None,
  ):
      # Set Parameters
      q = iterations
      if iteration_size is None:
          L = k + 2
      else:
          L = iteration_size
      assert (q + 1) * L >= k
      n = A.ncols
  
      # Generate random matrix G
      G = hl.rand_norm(0, 1, size=(n, L))
      G = hl.nd.qr(G)[0]._persist()
  
      fact = _krylov_factorization(A, G, q, compute_U)
      info("_reduced_svd: Computing local SVD")
      return fact.reduced_svd(k)
  
imports: from typing import List, Tuple
  import hail
  import hail.expr.aggregators
  from hail.expr.expressions import construct_expr
  from hail.expr import expr_float64, expr_call, raise_unless_entry_indexed, matrix_table_source
  from hail import ir
  from hail.table import Table
  from hail.typecheck import typecheck, oneof, nullable
  from hail.utils import FatalError
  from hail.utils.java import Env, info
  from hail.experimental import mt_to_table_of_ndarray
label_desc: Use image node_id 7 for calling a global function with example usage: _reduced_svd(A, k, compute_U, iterations, iteration_size) and returns: fact