Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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() */
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
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;
}
Ejemplo n.º 7
0
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;
}