Ivan Pribec
Ivan Pribec
We have that in `MINPACK_EXTERN` macro for the procedures, but not for the callback typedefs. According to the Oracle resources, the typedefs should have it too.
Would you retain the old API in a module or as external subroutines? If we want to remain backward compatible we could export external subroutines (similar to how the [C...
By API I was only referring to the standard Netlib interface (and associated behavior to an extent). Changing the formatting of messages is of course very welcome.
Maybe something like this could work: ```fortran #:mute #:def comma(a,b) ${a}$, ${b}$ #:enddef #:def unpack(*pos) #:if len(pos) > 1 #:set res = comma(pos[0],unpack(*pos[1:])) $:res #:elif len(pos) == 1 $:pos[0] #:endif...
Another possibility would be to follow a more SYCL-like approach: ```fortran #:if defined('OMP_KERNEL') #:def parallel_for(name,kernel,params,args) ! --- OMP Kernel --- subroutine ${name}$(${args}$) $:params !$omp parallel for do i = 1,...
Excellent! Thanks @aradi. I was missing a rule to help extract dimensions out of the declarations. Ideally, the range of the kernel (as in the 1d-3d (or higher) index space)...
Probably some implicit rules might be needed, e.g. `i`, `j`, `k` are the indexes into the kernel range. My last attempt at GEMM looked like this: ``` #:block parallel_for(d=2,name="my_gemm") #:contains...
Better than nothing. SuiteSparse and AMD are quite common so it should suffice.
Is this issue similar (or a duplicate) to #402?
> A pitfall of this algorithm is that compilers may decide that the parentheses are superfluous and thereby destroy the effect. How do you guard against that? In principle you...