parameters: (self, **kwargs)
docstring: r"""Compute the gradient of expected improvement at ``points_to_sample`` wrt ``points_to_sample``, with ``points_being_sampled`` concurrent samples.
  
          .. NOTE:: These comments were copied from ExpectedImprovementEvaluator::ComputeGradExpectedImprovement in gpp_math.hpp
            and duplicated
            :meth:`moe.optimal_learning.python.cpp_wrappers.expected_improvement.ExpectedImprovement.compute_grad_expected_improvement` and
            :meth:`moe.optimal_learning.python.python_version.expected_improvement.ExpectedImprovement.compute_grad_expected_improvement`
  
          ``points_to_sample`` is the "q" and ``points_being_sampled`` is the "p" in q,p-EI.
  
          In general, the expressions for gradients of EI are complex and difficult to evaluate; hence we use
          Monte-Carlo simulation to approximate it. When faster (e.g., analytic) techniques are available, we will prefer them.
  
          The MC computation of grad EI is similar to the computation of EI (decsribed in
          compute_expected_improvement). We differentiate ``y = \mu + Lw`` wrt ``points_to_sample``;
          only terms from the gradient of ``\mu`` and ``L`` contribute. In EI, we computed:
          ``improvement_per_step = max(max(best_so_far - y), 0.0)``
          and noted that only the smallest component of ``y`` may contribute (if it is > 0.0).
          Call this index ``winner``. Thus in computing grad EI, we only add gradient terms
          that are attributable to the ``winner``-th component of ``y``.
  
          :return: gradient of EI, ``\pderiv{EI(Xq \cup Xp)}{Xq_{i,d}}`` where ``Xq`` is ``points_to_sample``
            and ``Xp`` is ``points_being_sampled`` (grad EI from sampling ``points_to_sample`` with
            ``points_being_sampled`` concurrent experiments wrt each dimension of the points in ``points_to_sample``)
          :rtype: array of float64 with shape (num_to_sample, dim)
docstring_summary: r"""Compute the gradient of expected improvement at ``points_to_sample`` wrt ``points_to_sample``, with ``points_being_sampled`` concurrent samples.
docstring_tokens: r Compute the gradient of expected improvement at points_to_sample wrt points_to_sample with points_being_sampled concurrent samples .
function: def compute_grad_expected_improvement(self, **kwargs):
          r"""Compute the gradient of expected improvement at ``points_to_sample`` wrt ``points_to_sample``, with ``points_being_sampled`` concurrent samples.
  
          .. NOTE:: These comments were copied from ExpectedImprovementEvaluator::ComputeGradExpectedImprovement in gpp_math.hpp
            and duplicated
            :meth:`moe.optimal_learning.python.cpp_wrappers.expected_improvement.ExpectedImprovement.compute_grad_expected_improvement` and
            :meth:`moe.optimal_learning.python.python_version.expected_improvement.ExpectedImprovement.compute_grad_expected_improvement`
  
          ``points_to_sample`` is the "q" and ``points_being_sampled`` is the "p" in q,p-EI.
  
          In general, the expressions for gradients of EI are complex and difficult to evaluate; hence we use
          Monte-Carlo simulation to approximate it. When faster (e.g., analytic) techniques are available, we will prefer them.
  
          The MC computation of grad EI is similar to the computation of EI (decsribed in
          compute_expected_improvement). We differentiate ``y = \mu + Lw`` wrt ``points_to_sample``;
          only terms from the gradient of ``\mu`` and ``L`` contribute. In EI, we computed:
          ``improvement_per_step = max(max(best_so_far - y), 0.0)``
          and noted that only the smallest component of ``y`` may contribute (if it is > 0.0).
          Call this index ``winner``. Thus in computing grad EI, we only add gradient terms
          that are attributable to the ``winner``-th component of ``y``.
  
          :return: gradient of EI, ``\pderiv{EI(Xq \cup Xp)}{Xq_{i,d}}`` where ``Xq`` is ``points_to_sample``
            and ``Xp`` is ``points_being_sampled`` (grad EI from sampling ``points_to_sample`` with
            ``points_being_sampled`` concurrent experiments wrt each dimension of the points in ``points_to_sample``)
          :rtype: array of float64 with shape (num_to_sample, dim)
  
          """
          pass
function_tokens: def compute_grad_expected_improvement ( self , * * kwargs ) : pass