public synchronized CLKernel getKernel(Fun2 op, Primitive prim1, Primitive prim2, Primitive primOut, boolean secondOperandIsScalar) throws CLBuildException { Map<PrimitiveTrio, CLKernel> m = fun2Kernels.get(op); if (m == null) fun2Kernels.put(op, m = new HashMap<PrimitiveTrio, CLKernel>()); PrimitiveTrio key = new PrimitiveTrio(prim1, prim2, primOut, secondOperandIsScalar); CLKernel ker = m.get(key); if (ker == null) { StringBuilder out = new StringBuilder(300); String name = createVectFun2Source(op, prim1, prim2, primOut, out, secondOperandIsScalar); CLProgram prog = getContext().createProgram(out.toString()).build(); ker = prog.createKernel(name); m.put(key, ker); } return ker; }
public synchronized CLKernel getKernel(Fun2 op, Primitive prim1, Primitive prim2, Primitive primOut, boolean secondOperandIsScalar) throws CLBuildException { Map<PrimitiveTrio, CLKernel> m = fun2Kernels.get(op); if (m == null) fun2Kernels.put(op, m = new HashMap<PrimitiveTrio, CLKernel>()); PrimitiveTrio key = new PrimitiveTrio(prim1, prim2, primOut, secondOperandIsScalar); CLKernel ker = m.get(key); if (ker == null) { StringBuilder out = new StringBuilder(300); String name = createVectFun2Source(op, prim1, prim2, primOut, out, secondOperandIsScalar); CLProgram prog = getContext().createProgram(out.toString()).build(); ker = prog.createKernel(name); m.put(key, ker); } return ker; }