anchor.diff:      nbins = size(counts)
       nmax = maxval(counts)
       allocate(multi0(nmax+1),stat=err)
  +    ! multi0(n+1) is the number of states with frequency n
       multi0 = 0
  +    ! take into account the alphabet_size - nbins states with zero frequency
       multi0(1) = alphabet_size - nbins
       do i_ = 1,nbins
          ni_ = counts(i_)
  
positive.code:   end subroutine compute_multiplicities
  
    subroutine dirichlet_finalize()
  
      deallocate(multi_z,multi)
  
    end subroutine dirichlet_finalize
  
    pure real(real64) function log_fpxa(alpha) 
  
negative.code:     ! set n_multi, multi_z, multi
      integer(int32), intent(in) :: counts(:)
      integer(int32), intent(in) :: nc_
      
      alphabet_size = nc_
      n_data = sum(counts)
      
      call compute_multiplicities(counts)
      
    end subroutine initialize_dirichlet
  
    subroutine compute_multiplicities(counts)
  