anchor.diff:         CALL MPI_Allreduce(MPI_IN_PLACE, inverse_factor, 1, MPINTREAL, MPI_SUM, &
               & row_comm, grid_error)
   
  +       !! Compute Dot Products
  +       !! Unlike normal cholesky, we need to pack for sending first
  +       fill_counter = 0
  +       DO II = JJ + 1, AMat%actual_matrix_dimension
  +          pi_i = pivot_vector(II)
  +          local_pi_i = pi_i - AMat%start_column + 1
  +          IF (pi_i .GE. AMat%start_column .AND. pi_i .LT. AMat%end_column) THEN
  +            fill_counter = fill_counter + 1
  +            values_per_column_pi(fill_counter) = values_per_column_l(local_pi_i)
  +            index_pi(:,fill_counter) = index_l(:,local_pi_i)
  +            values_pi(:,fill_counter) = values_l(:,local_pi_i)
  +          END IF
  +       END DO
  +       CALL DotAllHelper(recv_num_values, recv_index, recv_values, &
  +            & values_per_column_pi(:fill_counter), index_pi(:,:fill_counter), &
  +            & values_pi(:,:fill_counter), dot_values(:fill_counter), &
  +            & column_comm)
  +
          !! Loop over other columns
  +       fill_counter = 0
          DO II = JJ + 1, AMat%actual_matrix_dimension
             pi_i = pivot_vector(II)
             local_pi_i = pi_i - AMat%start_column + 1
  
positive.code:     !! Local Variables
      TYPE(SparseMatrix_t) :: sparse_a
      REAL(NTREAL), DIMENSION(:,:), ALLOCATABLE :: dense_a
      INTEGER, DIMENSION(:), ALLOCATABLE :: values_per_column_l
      INTEGER, DIMENSION(:,:), ALLOCATABLE :: index_l
      REAL(NTREAL), DIMENSION(:,:), ALLOCATABLE :: values_l
      !! Temporary Variables
      INTEGER, DIMENSION(:), ALLOCATABLE :: recv_index
      REAL(NTREAL), DIMENSION(:), ALLOCATABLE :: recv_values
  
negative.code:              END IF
               CALL MPI_Allreduce(MPI_IN_PLACE, Aval, 1, MPINTREAL, MPI_SUM, &
                    & column_comm, grid_error)
               !! Insert Into L
               fill_counter = fill_counter + 1
               insert_value = inverse_factor * (Aval - dot_values(fill_counter))
               IF (JJ .GE. AMat%start_row .AND. JJ .LT. AMat%end_row) THEN
                  CALL AppendToVector(values_per_column_l(local_pi_i), &
                       & index_l(:,local_pi_i), values_l(:, local_pi_i), &
  