void CS(int lb[], int ub[], int maxI, int nnest, int dim, Nest *Nests, double (*fobj)(int, double x[], int)){ srand(time(0)); unsigned long germe[6] = { rand(), rand(), rand(), rand(), rand(), rand() }; RngStream_SetPackageSeed (germe); RngStream g1 = RngStream_CreateStream ("Laplace"); double pa = 0.25; Nest new_Nest[nnest], best; init(nnest,dim,lb,ub,Nests,g1); memcpy(new_Nest, Nests, sizeof(new_Nest)); get_best_nest(nnest,dim, &best, new_Nest, Nests,fobj); double fxmin = best.fx; int t; for (t = 0; t < 1; t++){ get_cuckoos(nnest,lb, ub, dim, &best, new_Nest, Nests,g1); get_best_nest(nnest,dim, &best, new_Nest, Nests, fobj); empty_nests(nnest,dim, lb, ub, new_Nest, Nests,pa,g1); get_best_nest(nnest,dim, &best, new_Nest, Nests, fobj); if(best.fx < fxmin){ fxmin = best.fx; } stRank(Nests, nnest, dim, g1); } show_nest(nnest,dim, Nests, new_Nest, &best, fxmin); }
SEXP R_RngStreams_SetPackageSeed (SEXP R_seed) /*----------------------------------------------------------------------*/ /* Set global seed for RNGStreams package. */ /* */ /* parameters: */ /* R_seed ... (double [6]) ... seed */ /*----------------------------------------------------------------------*/ { int n_seed; unsigned long seed[6]; int i; /* get data */ PROTECT(R_seed = AS_NUMERIC(R_seed)); n_seed = LENGTH(R_seed); /* we need array of 6 unsigned long */ if (n_seed<6) { UNPROTECT(1); error("too few values for seed\n"); } for (i=0; i<6; i++) seed[i] = (unsigned long) NUMERIC_POINTER(R_seed)[i]; UNPROTECT(1); /* set seed */ if (RngStream_SetPackageSeed(seed)) error("invalid seed\n"); return R_NilValue; } /* end of R_RngStreams_SetPackageSeed() */
int main(int argc, char const *argv[]){ srand(time(0)); unsigned long germe[6] = { rand(), rand(), rand(), rand(), rand(), rand() }; RngStream_SetPackageSeed (germe); RngStream g1 = RngStream_CreateStream ("Laplace"); double (*fObj)(int, int, double[]); printf("Funcion 1\n"); fObj=function; GWO(lb, ub, fObj, g1); showPack(); printf("Funcion 6\n"); fObj=function6; GWO(lb, ub, fObj, g1); showPack(); printf("Funcion 7\n"); fObj=function7; GWO(-1.28, 1.28, fObj, g1); showPack(); printf("Funcion 8\n"); fObj = function8; GWO(-500, 500, fObj, g1); showPack(); RngStream_DeleteStream (&g1); return 0; }
void r_set_package_seed(SEXP sexp_seed) { int i; unsigned long seed[6]; for (i = 0; i < 6; ++i) { seed[i]= (unsigned long) REAL(sexp_seed)[i]; } RngStream_SetPackageSeed( (unsigned long *) seed); return; }
int main (int argc, char const *argv[]) { srand(time(0)); for (int i = 0; i < 30; ++i){ unsigned long germe[6] = { rand(), rand(), rand(), rand(), rand(), rand() }; RngStream_SetPackageSeed (germe); g1 = RngStream_CreateStream ("Laplace"); GWO(); showPack(); RngStream_DeleteStream (&g1); } return 0; }
JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_RngStream_setPackageSeed(JNIEnv *env, jobject jrngstream, jintArray jseed) { jint buffer[6]; env->GetIntArrayRegion(jseed, 0, 6, buffer); RngStream rngstream = jrngstream_to_native(env, jrngstream); if (!rngstream) return JNI_FALSE; int result = RngStream_SetPackageSeed((unsigned long*)buffer); return result == -1 ? JNI_FALSE : JNI_TRUE; }
JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_RngStream_setPackageSeed(JNIEnv *env, jobject jrngstream, jintArray jseed) { if (jseed == nullptr) { jxbt_throw_null(env, xbt_strdup("seed argument is null")); return JNI_FALSE; } jint buffer[6]; env->GetIntArrayRegion(jseed, 0, 6, buffer); // The C API expects unsigned long which are wider than int on LP64. // We need to convert: unsigned long seed[6]; for (int i = 0; i != 6; ++i) seed[i] = buffer[i]; int result = RngStream_SetPackageSeed(seed); return result == -1 ? JNI_FALSE : JNI_TRUE; }