X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2e9105988280d1e88b5b496d6e2eed4c8d541883..d2990e6ae897aeb38681ef24acfa01935acf8354:/src/bindings/java/org/simgrid/msg/RngStream.java diff --git a/src/bindings/java/org/simgrid/msg/RngStream.java b/src/bindings/java/org/simgrid/msg/RngStream.java index 58b9c9e667..23e95cb973 100644 --- a/src/bindings/java/org/simgrid/msg/RngStream.java +++ b/src/bindings/java/org/simgrid/msg/RngStream.java @@ -1,13 +1,11 @@ -/* - * JNI interface to C RngStream code - * - * Copyright 2006-2012 The SimGrid Team. - * All right reserved. - * - * This program is free software; you can redistribute - * it and/or modify it under the terms of the license - * (GNU LGPL) which comes with this package. - */ +/* JNI interface to C RngStream code */ + +/* Copyright (c) 2006-2014. The SimGrid Team. + * All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + package org.simgrid.msg; /** * Export of RngStreams for Java @@ -43,17 +41,19 @@ public class RngStream { * The natively implemented method to create a C RngStream object. */ private native void create(String name); - /** - * Destructor - */ + @Override protected void finalize() { - destroy(); + try { + nativeFinalize(); + } catch (Throwable e) { + e.printStackTrace(); + } } /** * 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 @@ -81,21 +81,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[]); /** - * 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 > 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. + */ 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 @@ -107,13 +107,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 +}