public static function Atciqn($rc, $dc, $pr, $pd, $px, $rv,
          iauASTROM &$astrom, $n, array $b, &$ri, &$di) {

    foreach ($b as $i)
      if ($i instanceof iauLDBODY == false)
        throw new \InvalidArgumentException("All \$b elements must be iauLDBODY type");

    $pco  = [];
    $pnat = [];
    $ppr  = [];
    $pi   = [];
    $w;

    /* Proper motion and parallax, giving BCRS coordinate direction. */
    IAU::Pmpx($rc, $dc, $pr, $pd, $px, $rv, $astrom->pmt, $astrom->eb, $pco);

    /* Light deflection, giving BCRS natural direction. */
    IAU::Ldn($n, $b, $astrom->eb, $pco, $pnat);

    /* Aberration, giving GCRS proper direction. */
    IAU::Ab($pnat, $astrom->v, $astrom->em, $astrom->bm1, $ppr);

    /* Bias-precession-nutation, giving CIRS proper direction. */
    IAU::Rxp($astrom->bpn, $ppr, $pi);

    /* CIRS RA,Dec. */
    IAU::C2s($pi, $w, $di);
    $ri = IAU::Anp($w);

    /* Finished. */
  }