Open Crown421 opened 1 year ago
I don't have a strong opinion on the name Kernel
vs AbstractKernel
- there is no consensus in Julia (not even in Base - AbstractArray
, Real
and Number
are all abstract types) about whether abstract types should be named Abstract...
or not. Sometimes Abstract...
seems nice because then the non-Abstract
name can be used for a concrete default implementation - but that's not an argument here since there is no default kernel type. Also with this proposal SimpleKernel
etc. would be abstract types that are not of the form Abstract...
.
In any case, I think at most Kernel
could be renamed to AbstractKernel
but I don't see a reason to add a new abstract sub-type for kernels that are neither SimpleKernel
nor MOKernel
.
This might be a controversial point, but I have a few times been surprised by the fact that
Kernel
is an abstract type.I would like to propose/ consider adding
AbstractKernel
, with the subtypesSimpleKernel
,MOKernel
andKernel
, whereKernel
would further be the supertype of the various kernels that are not mentioned. This would be in line with howkernelmatrix
is defined, which is specialized forSimpleKernel
s and for all concrete instances ofMOKernel
s, but falls back tokernel.(x, permutedims(y))
forKernels
, which should continue.