<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Dear Numpy developers,</p>
    <p>I'm trying to add a routine to calculate the sum of a product of
      two arrays (a dot product). But that would not increase the memory
      (from what I saw np.dot is increasing the memory while it should
      not be necessary). The idea is to avoid the use of the temporary
      array in the calculation of the variance (
      numpy/numpy/core/_methods.py line 112).</p>
    <p>The routine that I want to implement look like this in python,</p>
    <p><code>arr = np.random.rand(100000)</code><br>
      <code>mean = arr.mean()</code><br>
      <code>var = 0.0</code><br>
      <code>for ai in arr: var += (ai-mean)**2</code></p>
    <p>I would like to implement it in the umath module. As a first
      step, I tried to reproduce the divmod function of umath, but I did
      not manage to do it, you can find my fork <a
        href="https://github.com/mbarbry/numpy/tree/looking_around">here</a>
      (the branch with the changes is call looking_around). During
      compilation I get the following error,</p>
    <code>gcc: numpy/core/src/multiarray/number.c <br>
      In file included from numpy/core/src/multiarray/number.c:17:0:
      numpy/core/src/multiarray/number.c: In function
      ‘array_sum_multiply’: <br>
      numpy/core/src/private/binop_override.h:176:39: error:
      ‘PyNumberMethods {aka struct <anonymous>}’ has no member
      named ‘nb_sum_multiply’
      (void*)(Py_TYPE(m2)->tp_as_number->SLOT_NAME) !=
      (void*)(test_func)) <br>
                                  ^ <br>
      numpy/core/src/private/binop_override.h:180:13: note: in expansion
      of macro ‘BINOP_IS_FORWARD’ if (BINOP_IS_FORWARD(m1, m2,
      slot_expr, test_func) && \<br>
              ^ <br>
      numpy/core/src/multiarray/number.c:363:5: note: in expansion of
      macro ‘BINOP_GIVE_UP_IF_NEEDED’ BINOP_GIVE_UP_IF_NEEDED(m1, m2,
      nb_sum_multiply, array_sum_multiply);</code><br>
    <p>Sorry if my question seems basic, but I'm new in Numpy
      development.<br>
      Any help?</p>
    <p>Thank you in advance,<br>
    </p>
    Marc Barbry<br>
    <br>
    PS: I opened an issues as well on the github repository<br>
    <a moz-do-not-send="true"
      href="https://github.com/numpy/numpy/issues/9130">https://github.com/numpy/numpy/issues/9130</a> <br>
  </body>
</html>