Week 6 Check-in

Published: 07/15/2020

What did you do this week?

I started a new PR that adds multimethods for mathematical functions. The multimethods that were added are the following:

Trigonometric functions

  • degrees
  • radians
  • unwrap


  • around (and its aliase round_)
  • fix

Sums, products, differences

  • cumprod
  • cumsum
  • nancumprod
  • nancumsum
  • ediff1d
  • cross
  • trapz

Other special functions

  • i0
  • sinc

Arithmetic operations

  • float_power

Handling complex numbers

  • angle
  • real
  • imag
  • conjugate


  • convolve
  • clip
  • nan_to_num
  • real_if_close
  • interp

I've also concluded the PR on array manipulation routines from previous weeks which still had some unresolved issues. It turns out that this week's work was mostly spent patching up the previous PR and less working on the new one unfortunately. This ended up delaying the new PR a bit but since the new one already added quite a few multimethods the schedule is unaffected.

What is coming up next?

Continuing the new PR by adding default implementations to the appropriate multimethods and starting a new PR that adds multimethods for functional programming routines. I already did some offline prototyping of default implementations for mathematical functions, the more easy ones at least. The more difficult ones (e.g., unwrap, convolve and interp) should be the focus of that part of next week's work.

Did you get stuck anywhere?

There were no major blocks this week. The only issue was the somewhat precedence that the older PR had which prevented the newer one to advance. For example, both PRs had failing tests in the XND backend so this backend was removed (the project is not maintained anymore) in the older PR. Since this has now been merged the newer PR can now receive those changes that fix its failing tests.