This PR adds a Java implementation. This addresses reviewer comments from #103.
In addition to the basic plain and threaded versions on the JDK, this PR also include implementations for Aparapi and TornadoVM.
Unlike every other language, Java's generic doesn't really work for primitives so I have to manually specialise for double and float. The current iteration has a few cases (GenericAparapiStreamKernel.java and GenericTornadoVMStream) where inheritance is used to reduce duplication.
Judging by the amount of lines this saved, inlining these classes might actually be more readable.
This PR adds a Java implementation. This addresses reviewer comments from #103. In addition to the basic plain and threaded versions on the JDK, this PR also include implementations for Aparapi and TornadoVM.
Unlike every other language, Java's generic doesn't really work for primitives so I have to manually specialise for
double
andfloat
. The current iteration has a few cases (GenericAparapiStreamKernel.java
andGenericTornadoVMStream
) where inheritance is used to reduce duplication. Judging by the amount of lines this saved, inlining these classes might actually be more readable.