diff --git a/.gitignore b/.gitignore
index b44b95d6339932e40a637ca96666d85f39b9c11a..40cff2ac4d55c23c40b1b5fa5577894a66457f3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,7 @@ hs_err_pid*
**/include/
**/nbproject/
target/
+
+# IntelliJ config files
+.idea
+*.iml
\ No newline at end of file
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index fb3247c7a4ac6709d63442973e16560e4e8a27db..50e4421c9e6d13a89987b518002082df310f6337 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -8,6 +8,7 @@
* Steven Libby
* Paul Miner
* Lorenzo Gallucci
+* Subhomoy Haldar (HungryBlueDev)
# Details
@@ -24,4 +25,5 @@ Below are some of the specific details of various contributions.
* Steven Libby provided patch for #6 (Allow finer control over fallback mode selection) Aug 21th 2012
* Steven Libby and Ryan Lamothe for #10 (Support for OpenMP, major refactoring cleanup and support for multidim arrays) March 28th 2013
* Paul Miner issue #61 and #115 (JTP Speed up and fixes to explicit puts) June 13th 2013
-& lgalluci for his fix for issue #121 (incorrect toString for 3D ranges) July 6th 2013
\ No newline at end of file
+& lgalluci for his fix for issue #121 (incorrect toString for 3D ranges) July 6th 2013
+* HungryBlueDev fixed the JavaDoc errors and warnings. July 8th 2019
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 70c3afddb73cc318a279e1dd7d99dc849630b7a2..ee501eb7452ef7ff3a203fe16f606839c21108b8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -145,7 +145,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
- <additionalparam>-Xdoclint:none</additionalparam>
+ <source>8</source>
</configuration>
</plugin>
<plugin>
diff --git a/src/main/java/com/aparapi/examples/javaonedemo/Mandel.java b/src/main/java/com/aparapi/examples/javaonedemo/Mandel.java
index 02755c27e89c355d2abd32be6f2197335f9367f8..7041ecac27f47d5f035aacb4dffc30b85a52bcd4 100644
--- a/src/main/java/com/aparapi/examples/javaonedemo/Mandel.java
+++ b/src/main/java/com/aparapi/examples/javaonedemo/Mandel.java
@@ -140,7 +140,6 @@ public class Mandel{
* @param _width Mandelbrot image width
* @param _height Mandelbrot image height
* @param _rgb Mandelbrot image RGB buffer
- * @param _pallette Mandelbrot image palette
*/
public MandelKernel(int _width, int _height, int[] _rgb) {
//Initialize palette values
diff --git a/src/main/java/com/aparapi/examples/javaonedemo/NBody.java b/src/main/java/com/aparapi/examples/javaonedemo/NBody.java
index 5b5be0746bcb5174bc6f1bb085de350724a76705..70f05b455cb4c503e15c8b52abb1d0834faf6d0e 100644
--- a/src/main/java/com/aparapi/examples/javaonedemo/NBody.java
+++ b/src/main/java/com/aparapi/examples/javaonedemo/NBody.java
@@ -83,6 +83,7 @@ import com.jogamp.opengl.GLProfile;
import com.jogamp.opengl.awt.GLCanvas;
import com.jogamp.opengl.fixedfunc.GLLightingFunc;
import com.jogamp.opengl.glu.GLU;
+
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
@@ -100,295 +101,303 @@ import com.jogamp.opengl.util.texture.TextureIO;
/**
* NBody implementing demonstrating Aparapi kernels.
- *
- * For a description of the NBody problem.
- * @see http://en.wikipedia.org/wiki/N-body_problem
- *
- * We use JOGL to render the bodies.
- * @see http://jogamp.org/jogl/www/
- *
- * @author gfrost
*
+ * For a description of the NBody problem, see
+ * <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
+ * We use JOGL to render the bodies. <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ *
+ * @see <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ * @see <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
+ * @author gfrost
*/
-public class NBody{
+public class NBody {
- public static class NBodyKernel extends Kernel{
- protected final float delT = .005f;
+ public static class NBodyKernel extends Kernel {
+ protected final float delT = .005f;
- protected final float espSqr = 1.0f;
+ protected final float espSqr = 1.0f;
- protected final float mass = 5f;
+ protected final float mass = 5f;
- private final Range range;
+ private final Range range;
- private final float[] xyz; // positions xy and z of bodies
+ private final float[] xyz; // positions xy and z of bodies
- private final float[] vxyz; // velocity component of x,y and z of bodies
+ private final float[] vxyz; // velocity component of x,y and z of bodies
- public NBodyKernel(Range _range) {
- range = _range;
- // range = Range.create(bodies);
- xyz = new float[range.getGlobalSize(0) * 3];
- vxyz = new float[range.getGlobalSize(0) * 3];
- final float maxDist = 20f;
- for (int body = 0; body < (range.getGlobalSize(0) * 3); body += 3) {
+ public NBodyKernel(Range _range) {
+ range = _range;
+ // range = Range.create(bodies);
+ xyz = new float[range.getGlobalSize(0) * 3];
+ vxyz = new float[range.getGlobalSize(0) * 3];
+ final float maxDist = 20f;
+ for (int body = 0; body < (range.getGlobalSize(0) * 3); body += 3) {
- final float theta = (float) (Math.random() * Math.PI * 2);
- final float phi = (float) (Math.random() * Math.PI * 2);
- final float radius = (float) (Math.random() * maxDist);
+ final float theta = (float) (Math.random() * Math.PI * 2);
+ final float phi = (float) (Math.random() * Math.PI * 2);
+ final float radius = (float) (Math.random() * maxDist);
- // get the 3D dimensional coordinates
- xyz[body + 0] = (float) (radius * Math.cos(theta) * Math.sin(phi));
- xyz[body + 1] = (float) (radius * Math.sin(theta) * Math.sin(phi));
- xyz[body + 2] = (float) (radius * Math.cos(phi));
+ // get the 3D dimensional coordinates
+ xyz[body + 0] = (float) (radius * Math.cos(theta) * Math.sin(phi));
+ xyz[body + 1] = (float) (radius * Math.sin(theta) * Math.sin(phi));
+ xyz[body + 2] = (float) (radius * Math.cos(phi));
- // divide into two 'spheres of bodies' by adjusting x
+ // divide into two 'spheres of bodies' by adjusting x
- if ((body % 2) == 0) {
- xyz[body + 0] += maxDist * 1.5;
- } else {
- xyz[body + 0] -= maxDist * 1.5;
+ if ((body % 2) == 0) {
+ xyz[body + 0] += maxDist * 1.5;
+ } else {
+ xyz[body + 0] -= maxDist * 1.5;
+ }
}
- }
- setExplicit(true);
- }
-
- /**
- * Here is the kernel entrypoint. Here is where we calculate the position of each body
- */
- @Override public void run() {
- final int body = getGlobalId();
- final int count = getGlobalSize(0) * 3;
- final int globalId = body * 3;
-
- float accx = 0.f;
- float accy = 0.f;
- float accz = 0.f;
-
- final float myPosx = xyz[globalId + 0];
- final float myPosy = xyz[globalId + 1];
- final float myPosz = xyz[globalId + 2];
- for (int i = 0; i < count; i += 3) {
- final float dx = xyz[i + 0] - myPosx;
- final float dy = xyz[i + 1] - myPosy;
- final float dz = xyz[i + 2] - myPosz;
- final float invDist = rsqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr);
- final float s = mass * invDist * invDist * invDist;
- accx = accx + (s * dx);
- accy = accy + (s * dy);
- accz = accz + (s * dz);
- }
- accx = accx * delT;
- accy = accy * delT;
- accz = accz * delT;
- xyz[globalId + 0] = myPosx + (vxyz[globalId + 0] * delT) + (accx * .5f * delT);
- xyz[globalId + 1] = myPosy + (vxyz[globalId + 1] * delT) + (accy * .5f * delT);
- xyz[globalId + 2] = myPosz + (vxyz[globalId + 2] * delT) + (accz * .5f * delT);
-
- vxyz[globalId + 0] = vxyz[globalId + 0] + accx;
- vxyz[globalId + 1] = vxyz[globalId + 1] + accy;
- vxyz[globalId + 2] = vxyz[globalId + 2] + accz;
- }
-
- /**
- * Render all particles to the OpenGL context
- * @param gl
- */
-
- protected void render(GL2 gl) {
- gl.glBegin(GL2.GL_QUADS);
-
- for (int i = 0; i < (range.getGlobalSize(0) * 3); i += 3) {
- gl.glTexCoord2f(0, 1);
- gl.glVertex3f(xyz[i + 0], xyz[i + 1] + 1, xyz[i + 2]);
- gl.glTexCoord2f(0, 0);
- gl.glVertex3f(xyz[i + 0], xyz[i + 1], xyz[i + 2]);
- gl.glTexCoord2f(1, 0);
- gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1], xyz[i + 2]);
- gl.glTexCoord2f(1, 1);
- gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1] + 1, xyz[i + 2]);
- }
- gl.glEnd();
- }
-
- }
-
- public static int width;
-
- public static int height;
-
- public static boolean running;
-
- public static Texture texture;
-
- public static void main(String _args[]) {
-
- final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 10000)));
- kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
- final JFrame frame = new JFrame("NBody");
-
- final JPanel panel = new JPanel(new BorderLayout());
- final JPanel controlPanel = new JPanel(new FlowLayout());
- panel.add(controlPanel, BorderLayout.SOUTH);
-
- final JButton startButton = new JButton("Start");
-
- startButton.addActionListener(new ActionListener(){
- @Override public void actionPerformed(ActionEvent e) {
- running = true;
- startButton.setEnabled(false);
- }
- });
- controlPanel.add(startButton);
-
- final String[] choices = new String[] {
- // "Java Sequential",
- "Java Threads",
- "GPU OpenCL"
- };
-
- final JComboBox modeButton = new JComboBox(choices);
-
- modeButton.addItemListener(new ItemListener(){
- @Override public void itemStateChanged(ItemEvent e) {
- final String item = (String) modeButton.getSelectedItem();
-
- if (item.equals(choices[0])) {
- kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
-
- } else if (item.equals(choices[1])) {
- kernel.setExecutionMode(Kernel.EXECUTION_MODE.GPU);
+ setExplicit(true);
+ }
+
+ /**
+ * Here is the kernel entrypoint. Here is where we calculate the position of each body
+ */
+ @Override
+ public void run() {
+ final int body = getGlobalId();
+ final int count = getGlobalSize(0) * 3;
+ final int globalId = body * 3;
+
+ float accx = 0.f;
+ float accy = 0.f;
+ float accz = 0.f;
+
+ final float myPosx = xyz[globalId + 0];
+ final float myPosy = xyz[globalId + 1];
+ final float myPosz = xyz[globalId + 2];
+ for (int i = 0; i < count; i += 3) {
+ final float dx = xyz[i + 0] - myPosx;
+ final float dy = xyz[i + 1] - myPosy;
+ final float dz = xyz[i + 2] - myPosz;
+ final float invDist = rsqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr);
+ final float s = mass * invDist * invDist * invDist;
+ accx = accx + (s * dx);
+ accy = accy + (s * dy);
+ accz = accz + (s * dz);
}
- }
+ accx = accx * delT;
+ accy = accy * delT;
+ accz = accz * delT;
+ xyz[globalId + 0] = myPosx + (vxyz[globalId + 0] * delT) + (accx * .5f * delT);
+ xyz[globalId + 1] = myPosy + (vxyz[globalId + 1] * delT) + (accy * .5f * delT);
+ xyz[globalId + 2] = myPosz + (vxyz[globalId + 2] * delT) + (accz * .5f * delT);
+
+ vxyz[globalId + 0] = vxyz[globalId + 0] + accx;
+ vxyz[globalId + 1] = vxyz[globalId + 1] + accy;
+ vxyz[globalId + 2] = vxyz[globalId + 2] + accz;
+ }
+
+ /**
+ * Render all particles to the OpenGL context
+ * @param gl
+ */
+
+ protected void render(GL2 gl) {
+ gl.glBegin(GL2.GL_QUADS);
+
+ for (int i = 0; i < (range.getGlobalSize(0) * 3); i += 3) {
+ gl.glTexCoord2f(0, 1);
+ gl.glVertex3f(xyz[i + 0], xyz[i + 1] + 1, xyz[i + 2]);
+ gl.glTexCoord2f(0, 0);
+ gl.glVertex3f(xyz[i + 0], xyz[i + 1], xyz[i + 2]);
+ gl.glTexCoord2f(1, 0);
+ gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1], xyz[i + 2]);
+ gl.glTexCoord2f(1, 1);
+ gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1] + 1, xyz[i + 2]);
+ }
+ gl.glEnd();
+ }
- });
- controlPanel.add(modeButton);
+ }
- controlPanel.add(new JLabel(" " + kernel.range.getGlobalSize(0) + " Particles"));
+ public static int width;
- final GLCapabilities caps = new GLCapabilities(null);
- final GLProfile profile = caps.getGLProfile();
- caps.setDoubleBuffered(true);
- caps.setHardwareAccelerated(true);
- final GLCanvas canvas = new GLCanvas(caps);
+ public static int height;
- final GLUT glut = new GLUT();
+ public static boolean running;
- final Dimension dimension = new Dimension(Integer.getInteger("width", 1024 + 256),
- Integer.getInteger("height", 768 - 64 - 32));
- canvas.setPreferredSize(dimension);
+ public static Texture texture;
- canvas.addGLEventListener(new GLEventListener(){
- private double ratio;
+ public static void main(String _args[]) {
- private final float xeye = 0f;
+ final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 10000)));
+ kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
+ final JFrame frame = new JFrame("NBody");
- private final float yeye = 0f;
+ final JPanel panel = new JPanel(new BorderLayout());
+ final JPanel controlPanel = new JPanel(new FlowLayout());
+ panel.add(controlPanel, BorderLayout.SOUTH);
- private final float zeye = 100f;
+ final JButton startButton = new JButton("Start");
- private final float xat = 0f;
+ startButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ running = true;
+ startButton.setEnabled(false);
+ }
+ });
+ controlPanel.add(startButton);
- private final float yat = 0f;
+ final String[] choices = new String[]{
+ // "Java Sequential",
+ "Java Threads",
+ "GPU OpenCL"
+ };
- private final float zat = 0f;
+ final JComboBox modeButton = new JComboBox(choices);
- public final float zoomFactor = 1.0f;
+ modeButton.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ final String item = (String) modeButton.getSelectedItem();
- private int frames;
+ if (item.equals(choices[0])) {
+ kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
- private long last = System.currentTimeMillis();
+ } else if (item.equals(choices[1])) {
+ kernel.setExecutionMode(Kernel.EXECUTION_MODE.GPU);
+ }
+ }
- @Override public void dispose(GLAutoDrawable drawable) {
+ });
+ controlPanel.add(modeButton);
- }
+ controlPanel.add(new JLabel(" " + kernel.range.getGlobalSize(0) + " Particles"));
- @Override public void display(GLAutoDrawable drawable) {
+ final GLCapabilities caps = new GLCapabilities(null);
+ final GLProfile profile = caps.getGLProfile();
+ caps.setDoubleBuffered(true);
+ caps.setHardwareAccelerated(true);
+ final GLCanvas canvas = new GLCanvas(caps);
- final GL2 gl = drawable.getGL().getGL2();
- texture.enable(gl);
- texture.bind(gl);
+ final GLUT glut = new GLUT();
- gl.glLoadIdentity();
- gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
- gl.glColor3f(1f, 1f, 1f);
+ final Dimension dimension = new Dimension(Integer.getInteger("width", 1024 + 256),
+ Integer.getInteger("height", 768 - 64 - 32));
+ canvas.setPreferredSize(dimension);
- final GLU glu = new GLU();
- glu.gluPerspective(45f, ratio, 1f, 1000f);
+ canvas.addGLEventListener(new GLEventListener() {
+ private double ratio;
- glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f);
- if (running) {
- kernel.execute(kernel.range);
- if (kernel.isExplicit()) {
- kernel.get(kernel.xyz);
- }
- final List<ProfileInfo> profileInfo = kernel.getProfileInfo();
- if ((profileInfo != null) && (profileInfo.size() > 0)) {
- for (final ProfileInfo p : profileInfo) {
- System.out.print(" " + p.getType() + " " + p.getLabel() + ((p.getEnd() - p.getStart()) / 1000) + "us");
- }
- System.out.println();
- }
- }
- kernel.render(gl);
+ private final float xeye = 0f;
+
+ private final float yeye = 0f;
- final long now = System.currentTimeMillis();
- final long time = now - last;
- frames++;
+ private final float zeye = 100f;
- if (running) {
- final float framesPerSecond = (frames * 1000.0f) / time;
+ private final float xat = 0f;
+
+ private final float yat = 0f;
+
+ private final float zat = 0f;
+
+ public final float zoomFactor = 1.0f;
+
+ private int frames;
+
+ private long last = System.currentTimeMillis();
+
+ @Override
+ public void dispose(GLAutoDrawable drawable) {
- gl.glColor3f(.5f, .5f, .5f);
- gl.glRasterPos2i(-40, 38);
- glut.glutBitmapString(8, String.format("%5.2f fps", framesPerSecond));
- gl.glFlush();
}
- frames = 0;
- last = now;
-
- }
-
- @Override public void init(GLAutoDrawable drawable) {
- final GL2 gl = drawable.getGL().getGL2();
-
- gl.glShadeModel(GLLightingFunc.GL_SMOOTH);
- gl.glEnable(GL.GL_BLEND);
- gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE);
- try {
- final InputStream textureStream = NBody.class.getResourceAsStream("/particle.jpg");
- if( textureStream == null )
- throw new IllegalStateException("Could not access particle.jpg resource");
- texture = TextureIO.newTexture(textureStream, false, null);
- } catch (final IOException | GLException e) {
- throw new IllegalStateException("Could not create texture", e);
+
+ @Override
+ public void display(GLAutoDrawable drawable) {
+
+ final GL2 gl = drawable.getGL().getGL2();
+ texture.enable(gl);
+ texture.bind(gl);
+
+ gl.glLoadIdentity();
+ gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
+ gl.glColor3f(1f, 1f, 1f);
+
+ final GLU glu = new GLU();
+ glu.gluPerspective(45f, ratio, 1f, 1000f);
+
+ glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f);
+ if (running) {
+ kernel.execute(kernel.range);
+ if (kernel.isExplicit()) {
+ kernel.get(kernel.xyz);
+ }
+ final List<ProfileInfo> profileInfo = kernel.getProfileInfo();
+ if ((profileInfo != null) && (profileInfo.size() > 0)) {
+ for (final ProfileInfo p : profileInfo) {
+ System.out.print(" " + p.getType() + " " + p.getLabel() + ((p.getEnd() - p.getStart()) / 1000) + "us");
+ }
+ System.out.println();
+ }
+ }
+ kernel.render(gl);
+
+ final long now = System.currentTimeMillis();
+ final long time = now - last;
+ frames++;
+
+ if (running) {
+ final float framesPerSecond = (frames * 1000.0f) / time;
+
+ gl.glColor3f(.5f, .5f, .5f);
+ gl.glRasterPos2i(-40, 38);
+ glut.glutBitmapString(8, String.format("%5.2f fps", framesPerSecond));
+ gl.glFlush();
+ }
+ frames = 0;
+ last = now;
+
}
- }
+ @Override
+ public void init(GLAutoDrawable drawable) {
+ final GL2 gl = drawable.getGL().getGL2();
+
+ gl.glShadeModel(GLLightingFunc.GL_SMOOTH);
+ gl.glEnable(GL.GL_BLEND);
+ gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE);
+ try {
+ final InputStream textureStream = NBody.class.getResourceAsStream("/particle.jpg");
+ if (textureStream == null)
+ throw new IllegalStateException("Could not access particle.jpg resource");
+ texture = TextureIO.newTexture(textureStream, false, null);
+ } catch (final IOException | GLException e) {
+ throw new IllegalStateException("Could not create texture", e);
+ }
- @Override public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) {
- width = _width;
- height = _height;
+ }
- final GL2 gl = drawable.getGL().getGL2();
- gl.glViewport(0, 0, width, height);
+ @Override
+ public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) {
+ width = _width;
+ height = _height;
- ratio = (double) width / (double) height;
+ final GL2 gl = drawable.getGL().getGL2();
+ gl.glViewport(0, 0, width, height);
- }
+ ratio = (double) width / (double) height;
+
+ }
- });
+ });
- panel.add(canvas, BorderLayout.CENTER);
- frame.getContentPane().add(panel, BorderLayout.CENTER);
- final FPSAnimator animator = new FPSAnimator(canvas, 100);
+ panel.add(canvas, BorderLayout.CENTER);
+ frame.getContentPane().add(panel, BorderLayout.CENTER);
+ final FPSAnimator animator = new FPSAnimator(canvas, 100);
- frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
- frame.pack();
- frame.setVisible(true);
+ frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
+ frame.pack();
+ frame.setVisible(true);
- animator.start();
+ animator.start();
- }
+ }
}
diff --git a/src/main/java/com/aparapi/examples/matrix/CorrMatrixHost.java b/src/main/java/com/aparapi/examples/matrix/CorrMatrixHost.java
index 1fe5637bb8e945e09b61d2e11c3caa88c9473520..c445fddcc4564339bc4f692cb4b0f44ed2dd3308 100644
--- a/src/main/java/com/aparapi/examples/matrix/CorrMatrixHost.java
+++ b/src/main/java/com/aparapi/examples/matrix/CorrMatrixHost.java
@@ -34,8 +34,8 @@ import com.aparapi.device.OpenCLDevice;
/**
* GPU calculations using OpenBitSet Intersection for OpenBitSets
*
- * Based on code from: <br/>
- * {@link http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java}
+ * Based on code from:
+ * <a href="http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java">apache.lucene.util.BitUtil.java</a>
*
* @author ryan.lamothe at gmail.com
* @author sedillard at gmail.com
@@ -51,9 +51,8 @@ public class CorrMatrixHost {
* The first term-document matrix
* @param matrixB
* The second term-document matrix
- * @param Aparapi EXECUTION_MODE
+ * @param executionMode EXECUTION_MODE
* @return result Matrix
- * @throws Exception
*/
public static int[][] intersectionMatrix(final long[][] matrixA, final long[][] matrixB, final EXECUTION_MODE executionMode) {
diff --git a/src/main/java/com/aparapi/examples/matrix/CorrMatrixKernel.java b/src/main/java/com/aparapi/examples/matrix/CorrMatrixKernel.java
index 90de1ae86a7fd6b02da429aba6bd308c53786894..45ffd74491045b6d2290e7a618651014bd271bdc 100644
--- a/src/main/java/com/aparapi/examples/matrix/CorrMatrixKernel.java
+++ b/src/main/java/com/aparapi/examples/matrix/CorrMatrixKernel.java
@@ -27,10 +27,10 @@ import com.aparapi.Kernel;
/**
* This kernel attempts to re-implement the Lucene OpenBitSet functionality on a GPU
- *
- * Based on code from: <br/>
- * {@link http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java}
- *
+ *
+ * Based on code from:
+ * <a href="http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java">apache.lucene.util.BitUtil.java</a>
+ *
* @author ryan.lamothe at gmail.com
* @author sedillard at gmail.com
*/
@@ -50,6 +50,13 @@ public class CorrMatrixKernel extends Kernel {
/**
* Default constructor
+ *
+ * @param matrixA Matrix A.
+ * @param matrixB Matrix B.
+ * @param matrixA_NumTerms Number of terms in Matrix A.
+ * @param matrixB_NumTerms Number of terms in Matrix B.
+ * @param numLongs Number of longs.
+ * @param resultMatrix The matrix to store the results in.
*/
public CorrMatrixKernel(final long[] matrixA, final int matrixA_NumTerms, final long[] matrixB, final int matrixB_NumTerms,
final int numLongs, final int[] resultMatrix) {
@@ -78,6 +85,12 @@ public class CorrMatrixKernel extends Kernel {
/**
* A naive implementation of the pop_array code below
+ *
+ * @param matrixA Matrix A.
+ * @param matrixB Matrix B.
+ * @param aStart Offset for Matrix A.
+ * @param bStart Offset for Matrix B.
+ * @param numWords The number of words to operate on.
*/
private int naive_pop_intersect(final long matrixA[], final int aStart, final long matrixB[], final int bStart, final int numWords) {
int sum = 0;
@@ -92,8 +105,14 @@ public class CorrMatrixKernel extends Kernel {
/**
* Returns the popcount or cardinality of the two sets after an intersection.
* Neither array is modified.
- *
+ *
* Modified for the purposes of this kernel from its original version
+ *
+ * @param matrixA Matrix A.
+ * @param matrixB Matrix B.
+ * @param aStart Offset for Matrix A.
+ * @param bStart Offset for Matrix B.
+ * @param numWords The number of words to operate on.
*/
private int pop_intersect(final long matrixA[], final int aStart, final long matrixB[], final int bStart, final int numWords) {
@@ -242,6 +261,8 @@ public class CorrMatrixKernel extends Kernel {
/**
* Returns the number of bits set in the long
+ *
+ * @param x The long whose bit count is needed.
*/
private int pop(long x) {
@@ -252,7 +273,7 @@ public class CorrMatrixKernel extends Kernel {
/*
* Hacker's Delight 32 bit pop function:
* http://www.hackersdelight.org/HDcode/newCode/pop_arrayHS.c.txt
- *
+ *
* int pop(unsigned x) {
* x = x - ((x >> 1) & 0x55555555);
* x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
diff --git a/src/main/java/com/aparapi/examples/matrix/Main.java b/src/main/java/com/aparapi/examples/matrix/Main.java
index 70075076a33957596ce18bb487b45ac36866e0dd..4b99136bfc1fd630fbc3131cc9f503ab8841f727 100644
--- a/src/main/java/com/aparapi/examples/matrix/Main.java
+++ b/src/main/java/com/aparapi/examples/matrix/Main.java
@@ -50,6 +50,8 @@ import java.util.Random;
public class Main {
/**
* NumTerms and NumLongs (documents) need to be adjusted manually right now to force 'striping' to occur (see Host code for details)
+ *
+ * @param _args The command-line arguments.
*/
public static void main(String[] _args) {
final List<Pair<OpenBitSet, OpenBitSet>> obsPairs = new ArrayList<Pair<OpenBitSet, OpenBitSet>>();
@@ -59,9 +61,9 @@ public class Main {
int[][] obsResultMatrix;
- /*
- * Populate test data
- */
+ /*
+ * Populate test data
+ */
System.out.println("----------");
System.out.println("Populating test matrix data using settings from build.xml...");
System.out.println("----------");
@@ -79,9 +81,9 @@ public class Main {
obsPairs.add(i, new ImmutablePair<OpenBitSet, OpenBitSet>(new OpenBitSet(bits, numLongs), new OpenBitSet(bits, numLongs)));
}
- /*
- * OpenBitSet calculations
- */
+ /*
+ * OpenBitSet calculations
+ */
System.out.println("Executing OpenBitSet intersectionCount");
final long startTime = System.currentTimeMillis();
@@ -107,9 +109,9 @@ public class Main {
System.out.println("OpenBitSet Gross Execution Time: " + endTime + " ms <------OpenBitSet");
System.out.println("----------");
- /*
- * GPU calculations
- */
+ /*
+ * GPU calculations
+ */
System.out.println("Executing Aparapi intersectionCount");
final long[][] matrixA = new long[obsPairs.size()][];
@@ -137,7 +139,7 @@ public class Main {
for (int j = 0; j < obsResultMatrix[i].length; j++)
if (obsResultMatrix[i][j] != gpuResultMatrix[i][j]) {
System.out.println("[" + i + "][" + j + "] -> " + obsResultMatrix[i][j] + " : " + gpuResultMatrix[i][j]);
- }
+ }
}
System.out.println("Any elements not listed matched!");
}
diff --git a/src/main/java/com/aparapi/examples/median/MedianKernel7x7.java b/src/main/java/com/aparapi/examples/median/MedianKernel7x7.java
index 1df96dd60f103aa288bb503986efc77f02eafd94..29201750c1b7a057b174cc69c7ad4ab022bcc762 100644
--- a/src/main/java/com/aparapi/examples/median/MedianKernel7x7.java
+++ b/src/main/java/com/aparapi/examples/median/MedianKernel7x7.java
@@ -29,7 +29,7 @@ import com.aparapi.*;
/**
* Provides support for pixel windows of size no greater than 49 (e.g. 7x7).
- * <p/>
+ *
* <p>Demonstrates use of __private array for (partial) sorting, also demonstrates @NoCl annotation for specialised use of ThreadLocal in JTP execution.
*/
public class MedianKernel7x7 extends Kernel {
@@ -155,6 +155,8 @@ public class MedianKernel7x7 extends Kernel {
* Title: Algorithms + data structures = programs
* Publisher: Englewood Cliffs: Prentice-Hall, 1976
* </pre>
+ *
+ * @param actualPixelCount The actual pixel count.
*/
protected final int median(int actualPixelCount) {
int i, j, L, m;
diff --git a/src/main/java/com/aparapi/examples/nbody/Main.java b/src/main/java/com/aparapi/examples/nbody/Main.java
index adf1a241e536c409cc24eb68c643e179843d5bdf..d178b0b43684e05154ace11e8451fdb0406edeb6 100644
--- a/src/main/java/com/aparapi/examples/nbody/Main.java
+++ b/src/main/java/com/aparapi/examples/nbody/Main.java
@@ -98,16 +98,16 @@ import com.jogamp.opengl.util.texture.TextureIO;
/**
* NBody implementing demonstrating Aparapi kernels.
- *
- * For a description of the NBody problem.
- *
- * @see http://en.wikipedia.org/wiki/N-body_problem
- *
- * We use JOGL to render the bodies.
- * @see http://jogamp.org/jogl/www/
- *
+ *
+ * For a description of the NBody problem, see
+ * <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
+ * We use JOGL to render the bodies. <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ *
+ * @see <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ * @see <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
* @author gfrost
- *
*/
public class Main{
@@ -127,7 +127,7 @@ public class Main{
/**
* Constructor initializes xyz and vxyz arrays.
*
- * @param _bodies
+ * @param _range The execution range provided.
*/
public NBodyKernel(Range _range) {
range = _range;
@@ -197,7 +197,7 @@ public class Main{
/**
* Render all particles to the OpenGL context
*
- * @param gl
+ * @param gl The OpenGL context to render to.
*/
protected void render(GL2 gl) {
diff --git a/src/main/java/com/aparapi/examples/nbody/Seq.java b/src/main/java/com/aparapi/examples/nbody/Seq.java
index 2d1dbdaa9dafe48159c67df9e935bd6efc2e663a..e6382803bbd161d95424bf54349fb28b0b4e24d8 100644
--- a/src/main/java/com/aparapi/examples/nbody/Seq.java
+++ b/src/main/java/com/aparapi/examples/nbody/Seq.java
@@ -98,16 +98,16 @@ import com.jogamp.opengl.util.texture.TextureIO;
/**
* NBody implemented sequentially
- *
- * For a description of the NBody problem.
- *
- * @see http://en.wikipedia.org/wiki/N-body_problem
- *
- * We use JOGL to render the bodies.
- * @see http://jogamp.org/jogl/www/
- *
+ *
+ * For a description of the NBody problem, see
+ * <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
+ * We use JOGL to render the bodies. <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ *
+ * @see <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ * @see <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
* @author gfrost
- *
*/
public class Seq{
@@ -127,7 +127,7 @@ public class Seq{
/**
* Constructor initializes xyz and vxyz arrays.
*
- * @param _bodies
+ * @param _bodies The number of bodies to be simulated.
*/
public NBodyKernel(int _bodies) {
bodies = _bodies;
@@ -196,7 +196,7 @@ public class Seq{
/**
* Render all particles to the OpenGL context
*
- * @param gl
+ * @param gl The OpenGL context to render to.
*/
protected void render(GL2 gl) {
diff --git a/src/main/java/com/aparapi/examples/oopnbody/Main.java b/src/main/java/com/aparapi/examples/oopnbody/Main.java
index 4ac096689e9a3824a2a35c0afa44dda521d1ffb7..7b41147f13b345a45ead88c1b10fe78dd8bb8765 100644
--- a/src/main/java/com/aparapi/examples/oopnbody/Main.java
+++ b/src/main/java/com/aparapi/examples/oopnbody/Main.java
@@ -95,16 +95,16 @@ import com.jogamp.opengl.util.texture.TextureIO;
/**
* NBody implementing demonstrating Aparapi kernels.
- *
- * For a description of the NBody problem.
- *
- * @see http://en.wikipedia.org/wiki/N-body_problem
- *
- * We use JOGL to render the bodies.
- * @see http://jogamp.org/jogl/www/
- *
+ *
+ * For a description of the NBody problem, see
+ * <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
+ * We use JOGL to render the bodies. <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ *
+ * @see <a href="http://jogamp.org/jogl/www/">JOGL</a>
+ * @see <a href="https://en.wikipedia.org/wiki/N-body_problem">n-body problem</a>
+ *
* @author gfrost
- *
*/
public class Main{
@@ -121,7 +121,7 @@ public class Main{
/**
* Constructor initializes xyz and vxyz arrays.
*
- * @param _bodies
+ * @param _range The execution range provided.
*/
public NBodyKernel(Range _range) {
range = _range;