anchor.diff:            pi_i = pivot_vector(II)
             IF (pi_i .GE. AMat%start_column .AND. pi_i .LT. AMat%end_column) THEN
                num_local_pivots = num_local_pivots + 1
  -             local_pivots(num_local_pivots) = pi_i
  +             local_pivots(num_local_pivots) = pi_i - AMat%start_column + 1
             END IF
          END DO
   
          !! Compute Dot Products
  -       !! Unlike normal cholesky, we need to pack for sending first
  -       !$omp parallel private(II, num_val, local_pi_i)
  -       !$omp do
  -       DO II = 1, num_local_pivots
  -          local_pi_i = local_pivots(II) - AMat%start_column + 1
  -          num_val = values_per_column_l(local_pi_i)
  -          values_per_column_pi(II) = num_val
  -          index_pi(:num_val,II) = index_l(:num_val,local_pi_i)
  -          values_pi(:num_val,II) = values_l(:num_val,local_pi_i)
  -       END DO
  -       !$omp end do
  -       !$omp end parallel
  -       CALL DotAllHelper(recv_num_values, recv_index, recv_values, &
  -            & values_per_column_pi(:num_local_pivots), &
  -            & index_pi(:,:num_local_pivots), values_pi(:,:num_local_pivots), &
  +       CALL DotAllPivoted(recv_num_values, recv_index, recv_values, &
  +            & values_per_column_l, &
  +            & index_l(:,:), values_l(:,:), &
  +            & local_pivots, num_local_pivots, &
               & dot_values(:num_local_pivots), column_comm)
   
          !! Broadcast AMat[:,pi_j]
  
positive.code:        IF (pi_j .GE. AMat%start_row .AND. pi_j .LT. AMat%end_row) THEN
            root = column_rank
            DO II = 1, num_local_pivots
               pi_i = local_pivots(II)
               local_pi_i = pi_i - AMat%start_column + 1
               fill_counter = fill_counter + 1
               a_buf(fill_counter) = dense_a(local_pi_j,local_pi_i)
            END DO
  
negative.code:     REAL(NTREAL), DIMENSION(:), ALLOCATABLE :: a_buf
      INTEGER :: II, JJ, local_JJ, local_II
      INTEGER :: local_pi_i, local_pi_j
      REAL(NTREAL) :: Aval, insert_value, inverse_factor
      REAL(NTREAL), DIMENSION(:), ALLOCATABLE :: dot_values
      INTEGER, DIMENSION(:), ALLOCATABLE :: diag_correction_index
  