<pre style='margin:0'>
Ryan Carsten Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ee37f657250af2a016428daadf9fc70b6f756b7b">https://github.com/macports/macports-ports/commit/ee37f657250af2a016428daadf9fc70b6f756b7b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ee37f657250af2a016428daadf9fc70b6f756b7b
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Thu Apr 11 20:29:56 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    strumpack: revbump, backport a fix from upstream for bpack3
</span>---
 math/strumpack/Portfile                        |   6 +-
 math/strumpack/files/Fix-BPACK-interface.patch | 385 +++++++++++++++++++++++++
 2 files changed, 390 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/strumpack/Portfile b/math/strumpack/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 48a4f9e9d1c..cc533a9ee3b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/math/strumpack/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/strumpack/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,7 +8,7 @@ PortGroup           mpi 1.0
</span> 
 github.setup        pghysels STRUMPACK 7.2.0 v
 name                strumpack
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          math science
 license             BSD
 maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -22,6 +22,10 @@ checksums           rmd160  354238dba4168641b4ee144c2fb846e3bb50b1f8 \
</span>                     size    2006016
 github.tarball_from archive
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/pghysels/STRUMPACK/issues/116
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Drop with the next update.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          Fix-BPACK-interface.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> depends_lib-append      port:metis \
                         port:scotch
 depends_build-append    port:util-linux
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/strumpack/files/Fix-BPACK-interface.patch b/math/strumpack/files/Fix-BPACK-interface.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..931b1abc4e7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/strumpack/files/Fix-BPACK-interface.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,385 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From fe3be9f9bc376e463f2a626c50995fbad7d72fe3 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Pieter Ghysels <pghysels@lbl.gov>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 11 Mar 2024 14:52:39 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix BPACK interface see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://github.com/pghysels/STRUMPACK/issues/116
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/HODLR/HODLRMatrix.cpp  | 16 +++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/HODLR/HODLRMatrix.hpp  |  7 ++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/HODLR/HODLRWrapper.cpp | 52 +++++++++++++++++++-------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/HODLR/HODLRWrapper.hpp | 15 ++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 47 insertions(+), 43 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/HODLR/HODLRMatrix.cpp src/HODLR/HODLRMatrix.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e37c2794..533f4999 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/HODLR/HODLRMatrix.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/HODLR/HODLRMatrix.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,7 +62,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_kernel_block_evaluation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      C2Fptr KC) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -96,7 +96,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_block_evaluation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      C2Fptr AC) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,13 +125,14 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (rank == p0) data += m*n;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ExtractionMeta e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {nullptr, *Ninter, *Nallrows, *Nallcols, *Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            allrows, allcols, rowids, colids, pgids, *Npmap, pmaps};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {nullptr, *Ninter, *Nallrows, *Nallcols,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         allrows, allcols, rowids, colids, pgids, *Npmap, pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         *Nalldat_loc};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       temp->Aelem->operator()(I, J, B, e);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_block_evaluation_seq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      C2Fptr f) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -154,8 +155,9 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         data += m*n;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ExtractionMeta e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {nullptr, *Ninter, *Nallrows, *Nallcols, *Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            allrows, allcols, rowids, colids, pgids, *Npmap, pmaps};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {nullptr, *Ninter, *Nallrows, *Nallcols,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         allrows, allcols, rowids, colids, pgids, *Npmap, pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         *Nalldat_loc};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static_cast<typename HODLRMatrix<scalar_t>::elem_blocks_t*>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         (f)->operator()(I, J, B, e);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/HODLR/HODLRMatrix.hpp src/HODLR/HODLRMatrix.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4c62f075..c85d4003 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/HODLR/HODLRMatrix.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/HODLR/HODLRMatrix.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,8 +53,9 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     struct ExtractionMeta {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       std::unique_ptr<int[]> iwork;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      int Ninter, Nallrows, Nallcols, Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      int Ninter, Nallrows, Nallcols,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         *allrows, *allcols, *rowids, *colids, *pgids, Npmap, *pmaps;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      std::int64_t Nalldat_loc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -594,13 +595,13 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_block_evaluation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void* AC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_block_evaluation_seq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void* f);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/HODLR/HODLRWrapper.cpp src/HODLR/HODLRWrapper.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 22e00238..750e3e62 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/HODLR/HODLRWrapper.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/HODLR/HODLRWrapper.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -247,7 +247,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, float*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, float* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -265,7 +265,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, double*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, double* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -279,7 +279,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& stats, F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, std::complex<float>*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, std::complex<float>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -293,7 +293,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            void(*)(int*, int*, _Complex float*, C2Fptr)>(C_FuncZmn),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           void(*)(int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           void(*)(int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    int* allrows, int* allcols, _Complex float* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    C2Fptr elems)>(C_FuncZmnBlock), fdata);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -304,7 +304,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& stats, F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, std::complex<double>*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, std::complex<double>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -314,7 +314,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          void(*)(int*, int*, _Complex double*, C2Fptr)>(C_FuncZmn),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         void(*)(int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         void(*)(int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  int* allrows, int* allcols, _Complex double* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  C2Fptr elems)>(C_FuncZmnBlock), fdata);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,7 +326,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, float*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, float* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -339,7 +339,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, double*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, double* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -352,7 +352,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, std::complex<float>*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, std::complex<float>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -361,7 +361,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          void(*)(int*, int*, _Complex float*, C2Fptr)>(C_FuncZmn),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         void(*)(int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         void(*)(int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  int* allrows, int* allcols, _Complex float* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  C2Fptr elems)>(C_FuncZmnBlock),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -372,7 +372,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, std::complex<double>*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, std::complex<double>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,7 +381,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          void(*)(int*, int*, _Complex double*, C2Fptr)>(C_FuncZmn),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          reinterpret_cast<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         void(*)(int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         void(*)(int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  int* allrows, int* allcols, _Complex double* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  C2Fptr elems)>(C_FuncZmnBlock),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -520,7 +520,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_construct_element_compute<float>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& stats, F2Cptr& msh,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& kerquant, F2Cptr& ptree, void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, float* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -531,7 +531,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_construct_element_compute<double>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& stats, F2Cptr& msh,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& kerquant, F2Cptr& ptree, void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, double* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -542,33 +542,33 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_construct_element_compute<std::complex<float>>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& stats, F2Cptr& msh,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& kerquant, F2Cptr& ptree, void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, std::complex<float>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       c_c_bf_construct_element_compute
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         (&lr_bf, &options, &stats, &msh, &kerquant, &ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          nullptr, reinterpret_cast<void(*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         (int*, int*, int*, int*, int*, int*, _Complex float*,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         (int*, int*, int*, std::int64_t*, int*, int*, _Complex float*,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           int*, int*, int*, int*, int*, C2Fptr)>(C_FuncZmnBlock), fdata);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_construct_element_compute<std::complex<double>>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& stats, F2Cptr& msh,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& kerquant, F2Cptr& ptree, void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, std::complex<double>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       z_c_bf_construct_element_compute
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         (&lr_bf, &options, &stats, &msh, &kerquant, &ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          nullptr, reinterpret_cast<void(*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         (int*, int*, int*, int*, int*, int*, _Complex double*,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         (int*, int*, int*, std::int64_t*, int*, int*, _Complex double*,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           int*, int*, int*, int*, int*, C2Fptr)>(C_FuncZmnBlock), fdata);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void HODLR_extract_elements<float>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& ho_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, float* alldat_loc, int* rowidx, int* colidx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       s_c_bpack_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -583,7 +583,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void HODLR_extract_elements<double>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& ho_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, double* alldat_loc, int* rowidx, int* colidx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       d_c_bpack_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -598,7 +598,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void HODLR_extract_elements<std::complex<float>>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& ho_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, std::complex<float>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowidx, int* colidx, int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       c_c_bpack_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -614,7 +614,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void HODLR_extract_elements<std::complex<double>>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& ho_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, std::complex<double>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowidx, int* colidx, int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       z_c_bpack_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -631,7 +631,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_extract_elements<float>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, float* alldat_loc, int* rowidx, int* colidx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       s_c_bf_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -647,7 +647,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_extract_elements<double>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, double* alldat_loc, int* rowidx, int* colidx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       d_c_bf_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -663,7 +663,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_extract_elements<std::complex<float>>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, std::complex<float>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowidx, int* colidx, int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       c_c_bf_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -679,7 +679,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<> void LRBF_extract_elements<std::complex<double>>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, std::int64_t Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* allrows, int* allcols, std::complex<double>* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowidx, int* colidx, int* pgidx, int Npmap, int* pmaps) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       z_c_bf_extractelement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/HODLR/HODLRWrapper.hpp src/HODLR/HODLRWrapper.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f94ac467..6bb3c95c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/HODLR/HODLRWrapper.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/HODLR/HODLRWrapper.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,6 +34,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cassert>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <complex>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <cstdint>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "dense/DenseMatrix.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "misc/MPIWrapper.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,7 +98,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, scalar_t*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +108,7 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& msh, F2Cptr& kerquant, F2Cptr& ptree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmn)(int*, int*, scalar_t*, C2Fptr),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      void (*C_FuncZmnBlock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr K);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -136,21 +137,21 @@ namespace strumpack {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void LRBF_construct_element_compute
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& stats, F2Cptr& msh,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      F2Cptr& kerquant, F2Cptr& ptree, void (*element)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     (int* Ninter, int* Nallrows, int* Nallcols, int* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (int* Ninter, int* Nallrows, int* Nallcols, std::int64_t* Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       int* rowids, int* colids, int* pgids, int* Npmap, int* pmaps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       C2Fptr elems), C2Fptr fdata);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_extract_elements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& ho_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     std::int64_t Nalldat_loc, int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowidx, int* colidx, int* pgidx, int Npmap, int* pmaps);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void LRBF_extract_elements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (F2Cptr& lr_bf, F2Cptr& options, F2Cptr& msh, F2Cptr& stats,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols, int Nalldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     F2Cptr& ptree, int Ninter, int Nallrows, int Nallcols,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     std::int64_t Nalldat_loc, int* allrows, int* allcols, scalar_t* alldat_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      int* rowidx, int* colidx, int* pgidx, int Npmap, int* pmaps);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template<typename scalar_t> void HODLR_deletestats(F2Cptr&);
</span></pre><pre style='margin:0'>

</pre>