Skip to content
  1. Apr 09, 2020
  2. Mar 17, 2020
  3. Jan 14, 2020
  4. Jan 10, 2020
  5. Dec 10, 2019
  6. Dec 09, 2019
  7. Dec 04, 2019
    • Andreas Klöckner's avatar
      Merge branch 'm2m' into 'master' · ae832346
      Andreas Klöckner authored
      Asymptotically better algorithm for M2M (In both compressed and full)
      
      See merge request !122
      ae832346
    • Isuru Fernando's avatar
      Merge branch 'inducer-m2m-patch-33725' into 'm2m' · 5ebebd34
      Isuru Fernando authored
      Some readability improvements for the new M2M algorithm
      
      See merge request isuruf/sumpy!2
      5ebebd34
    • Andreas Klöckner's avatar
    • Isuru Fernando's avatar
      Fix rscale · af8b7f39
      Isuru Fernando authored
      af8b7f39
    • Isuru Fernando's avatar
      Fix conforming expansions · a125a889
      Isuru Fernando authored
      a125a889
    • Isuru Fernando's avatar
      Asymptotically better algorithm for M2M · 9b917db2
      Isuru Fernando authored
      On master, M2M is $`O(p^2d)`$ for order p and dimension d, but CSE
      reduces this down to $`O(p^{2d-1})`$ sometimes.
      For eg: in Helmholtz 2D, full taylor is $`O(p^{2d-1})`$ and
      HelmholtzConformingTaylor is $`O(p^{2d-1.5})`$.
      
      This commit produces expressions in $`O(p^{2d-1})`$ consistently
      regardless of how good CSE is and $`O(p^{2d-2})`$ for compressed.
      
      The new algorithm uses the observation that M2M coefficients
      have the form in 2D,
      
      $`B_{m, n} = \sum_{i\le m, j\le n} A_{i, j} d_x^i d_y^j \binom{m}{i} \binom{n}{j}`$
      
      and can be rewritten as follows,
      
      Let $`T_{m, n} = \sum_{i\le m} A_{i, n} d_x^i \binom{m}{i}`$.
      
      Then, $`B_{m, n} = \sum_{j\le n} T_{m, j} d_y^j \binom{n}{j}`$
      and $`T_{m, n}`$ are $`p^2`$ number of temporary variables that are
      reused for different M2M coefficients and costs $`p`$ per variable.
      Total cost for calculating $`T_{m, n}`$ is $`p^3`$ and similar for $`B_{m, n}`$
      9b917db2
  8. Dec 02, 2019
  9. Dec 01, 2019
  10. Nov 26, 2019
  11. Nov 18, 2019
  12. Oct 21, 2019
  13. Oct 09, 2019
  14. Oct 08, 2019