Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines with new year.
[simgrid.git] / src / bindings / java / org / simgrid / msg / RngStream.java
index 6d5638c..5aa76d9 100644 (file)
@@ -1,6 +1,6 @@
 /* JNI interface to C RngStream code */
 
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -16,7 +16,7 @@ public class RngStream {
         */
        private long bind;
        /**
-        * Creates and returns a new stream without identifier. 
+        * Creates and returns a new stream without identifier.
         * This procedure reserves space to keep the information relative to
         * the RngStream, initializes its seed Ig , sets Bg and Cg equal to Ig , sets its antithetic and
         * precision switches to 0. The seed Ig is equal to the initial seed of the package given by
@@ -27,7 +27,7 @@ public class RngStream {
                create("");
        }
        /**
-        * Creates and returns a new stream with identifier "name". 
+        * Creates and returns a new stream with identifier "name".
         * This procedure reserves space to keep the information relative to
         * the RngStream, initializes its seed Ig , sets Bg and Cg equal to Ig , sets its antithetic and
         * precision switches to 0. The seed Ig is equal to the initial seed of the package given by
@@ -41,17 +41,16 @@ public class RngStream {
         * The natively implemented method to create a C RngStream object.
         */
        private native void create(String name);
-       /**
-        * Destructor
-        */
-       protected void finalize() {
-               destroy();
+
+       @Override
+       protected void finalize() throws Throwable{
+               nativeFinalize();
        }
        /**
         * Release the C RngStream object
         */
-       private native void destroy();
-       
+       private native void nativeFinalize();
+
        /**
         * Sets the initial seed of the package RngStreams to the six integers in the vector seed. This will
         * be the seed (initial state) of the first stream. If this procedure is not called, the default initial
@@ -59,7 +58,7 @@ public class RngStream {
         * must all be less than m1 = 4294967087, and not all 0; and the last 3 values must all be less
         * than m2 = 4294944443, and not all 0. Returns false for invalid seeds, and true otherwise.
         */
-       public static native boolean setPackageSeed(int seed[]);
+       public static native boolean setPackageSeed(int[] seed);
        /**
         * Reinitializes the stream g to its initial state: Cg and Bg are set to Ig .
         */
@@ -79,21 +78,21 @@ public class RngStream {
         */
        public native void setAntithetic(boolean a);
        /**
-         * Sets the initial seed Ig of stream g to the vector seed. This vector must satisfy the same
-         * conditions as in setPackageSeed. The stream is then reset to this initial seed. The
-         * states and seeds of the other streams are not modified. As a result, after calling this procedure,
-         * the initial seeds of the streams are no longer spaced Z values apart. We discourage the use of
-         * this procedure. Returns false for invalid seeds, and true otherwise.
+        * Sets the initial seed Ig of stream g to the vector seed. This vector must satisfy the same
+        * conditions as in setPackageSeed. The stream is then reset to this initial seed. The
+        * states and seeds of the other streams are not modified. As a result, after calling this procedure,
+        * the initial seeds of the streams are no longer spaced Z values apart. We discourage the use of
+        * this procedure. Returns false for invalid seeds, and true otherwise.
         */
-       public native boolean setSeed(int seed[]);
+       public native boolean setSeed(int[] seed);
        /**
-         * Advances the state of the stream by k values, without modifying the states of other streams (as
-         * in RngStream_SetSeed), nor the values of Bg and Ig associated with this stream. If e > 0, then
-         * k = 2e + c; if e < 0, then k = -2-e + c; and if e = 0, then k = c. Note: c is allowed to take
-         * negative values. We discourage the use of this procedure.    
-         */
+        * Advances the state of the stream by k values, without modifying the states of other streams (as
+        * in RngStream_SetSeed), nor the values of Bg and Ig associated with this stream. If e &gt; 0, then
+        * k = 2e + c; if e &lt; 0, then k = -2-e + c; and if e = 0, then k = c. Note: c is allowed to take
+        * negative values. We discourage the use of this procedure.    
+        */
        public native void advanceState(int e, int g);
-       
+
        /**
         * Returns a (pseudo)random number from the uniform distribution over the interval (0, 1), after advancing the state by one step. The returned number has 32 bits of precision
         * in the sense that it is always a multiple of 1/(232 - 208), unless RngStream_IncreasedPrecis
@@ -105,13 +104,13 @@ public class RngStream {
         * {i, i + 1, . . . , j}
         */
        public native int randInt(int i, int j);
-       
+
        /**
         * Class initializer, to initialize various JNI stuff
         */
        public static native void nativeInit();
        static {
-               Msg.nativeInit();
+               org.simgrid.NativeLib.nativeInit();
                nativeInit();
        }
-}
\ No newline at end of file
+}