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}