code: def blt(f: List[SYM], x: List[SYM]) -> Dict[str, Any]:
      J = ca.jacobian(f, x)
      nblock, rowperm, colperm, rowblock, colblock, coarserow, coarsecol = J.sparsity().btf()
      return {
          'J': J,
          'nblock': nblock,
          'rowperm': rowperm,
          'colperm': colperm,
          'rowblock': rowblock,
          'colblock': colblock,
          'coarserow': coarserow,
          'coarsecol': coarsecol
      }