code: def test_custom_linear_solve_complex(self):
      def solve(a, b):
          def solve(matvec, x):
              return jsp.linalg.solve(a, x)
  
          def tr_solve(matvec, x):
              return jsp.linalg.solve(a.T, x)
  
          matvec = partial(high_precision_dot, a)
          return lax.custom_linear_solve(matvec, b, solve, tr_solve)
  
      rng = self.rng()
      a = 0.5 * rng.randn(2, 2) + 0.5j * rng.randn(2, 2)
      b = 0.5 * rng.randn(2) + 0.5j * rng.randn(2)
      jtu.check_grads(solve, (a, b), order=2, rtol=1e-2)
  
imports: from functools import partial
  import re
  import unittest
  from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  import jax
  from jax import lax
  from jax.ad_checkpoint import checkpoint
  from jax._src import test_util
  from jax import tree_util
  import jax.numpy
  import jax.scipy
  from jax import config
label_desc: Use image node_id 6 for calling the CustomLinearSolveTest obj's underlying member method code with example usage: obj.test_custom_linear_solve_complex() and returns: lax, jsp, jsp