001package com.nativelibs4java.opencl.util; 002import com.nativelibs4java.opencl.CLAbstractUserProgram; 003import com.nativelibs4java.opencl.CLBuffer; 004import com.nativelibs4java.opencl.CLBuildException; 005import com.nativelibs4java.opencl.CLContext; 006import com.nativelibs4java.opencl.CLEvent; 007import com.nativelibs4java.opencl.CLKernel; 008import com.nativelibs4java.opencl.CLProgram; 009import com.nativelibs4java.opencl.CLQueue; 010import java.io.IOException; 011/** Wrapper around the OpenCL program XORShiftRandom */ 012public class XORShiftRandom extends CLAbstractUserProgram { 013 public XORShiftRandom(CLContext context) throws IOException { 014 super(context, readRawSourceForClass(XORShiftRandom.class)); 015 } 016 public XORShiftRandom(CLProgram program) throws IOException { 017 super(program, readRawSourceForClass(XORShiftRandom.class)); 018 } 019 CLKernel gen_numbers_kernel; 020 public synchronized CLEvent gen_numbers(CLQueue commandQueue, CLBuffer<Integer > seeds, CLBuffer<Integer > output, int globalWorkSizes[], int localWorkSizes[], CLEvent... eventsToWaitFor) throws CLBuildException { 021 if ((gen_numbers_kernel == null)) 022 gen_numbers_kernel = createKernel("gen_numbers"); 023 gen_numbers_kernel.setArgs(seeds, output); 024 return gen_numbers_kernel.enqueueNDRange(commandQueue, globalWorkSizes, localWorkSizes, eventsToWaitFor); 025 } 026 /** <i>native declaration : com/nativelibs4java/opencl/util/XORShiftRandom.c</i> */ 027 public static final int NUMBERS_COUNT = (int)0; 028}