-
Notifications
You must be signed in to change notification settings - Fork 369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bli_?setijv accepts void* instead of floating point type #831
Comments
Hi @ivan-pi. To what extent do you need strongly typed function prototypes? My first reaction to this was that this is just the tip of the tip of the tip of the iceberg for use of |
The application was creating Fortran interfaces from the C prototypes. The current script iterates over the parameter list and creates Fortran interface blocks such as: interface
subroutine bli_?setijv(ar,ai,i,x,incx)
real(c_double), value :: ar, ai
integer(dim_kind), value :: i
real(?) :: x(*) ! void*
integer(inc_kind), value :: incx
end subroutine
end interface Due to the Upon further thought I think it'll be better if I just introduce a Fortran version so that it can use 1-based indexing and check bounds automatically. |
Hi @ivan-pi I'm going to leave this open since you're right, it is an inconsistency. This could also affect C++ users. |
@fgvanzee |
In that case I'd just note that |
Thx |
The routines
?setijv
/?getijv
and?setijm
/?getijm
are not strongly typed.E.g. if you run
gcc -P -C -E path/to/blis.h > blis.h.pp
the preprocess header will contain the following prototypes:This originates from
blis/frame/base/bli_setgetijv.h
Lines 44 to 54 in 827c50b
Could these routines be strongly typed using
float
/double
/scomplex
/dcomplex
? The reason I'm asking is because the missing type breaks some scripts for generating wrappers.The text was updated successfully, but these errors were encountered: