Closed KristofferC closed 4 years ago
Just as a personal note, I am not sure this type of macro is a good idea. This is doing "type piracy" and if someone does this in a library it will add this behavior everywhere in the program. New users might get confused when cos(::Array)
actually gives an answer when the documentation says it is not defined etc. It seems clearer to me to just write IntelVectorMath.cos
.
Thank you very much, this PR together with adding in the artifact (which is absolutely wonderful) removes almost all external dependencies.
Regarding the macro: I personally use the exported alias (IVM) or a self defined one (for IVM.cos
) and not the macro, but there seemed to be some demand for it.
I remember some thread in the discourse that concluded with saying that imported function in a library/ package should be always qualified for clarity.
Closed in favour of #42
@vml_overload
instead of just@overload
since it is exported and@overload
is a very generic nameArray
but only onVector
. Calling it onArray
meant it included matrices and gave different semantics for e.g.exp(M::Matrix)
. That can break existing code and is just not acceptable.exp(::Vector{BigInt})
will no longer try to call VML.@vml_overload Base.exp
for the same reason one has to writeBase.exp
when overloading something locally. This means that there is no need to depend on SpecialFunctions anymore.