int main(int argc, const char * argv[]) { // insert code here... int* arr = new int[count_range()]; /* initialize random seed: */ srand(static_cast<unsigned int>(time(nullptr))); for (auto i=0; i<count_range(); ++i) { arr[i] = rand() % value_range(); std::cout << arr[i] << ", "; } std::cout << std::endl; unsigned int cnt_arr[value_range()] = {}; for (auto i=0; i<count_range(); ++i) { auto value = arr[i]; ++cnt_arr[value]; } for (auto i=0; i<value_range(); ++i) { for (auto j=0; j<cnt_arr[i]; ++j) { std::cout << i << ", "; } } return 0; }
value value_drop(value op, value n) { if (op.type == VALUE_NIL) { return value_init_nil(); } else if (op.type == VALUE_ARY) { if (n.type == VALUE_MPZ) { value length = value_set_long(op.core.u_a.length); value res = value_range(op, n, length); value_clear(&length); return res; } } else if (op.type == VALUE_LST) { if (n.type == VALUE_MPZ) { if (value_lt(n, value_zero)) { value_error(1, "Domain Error: drop() is undefined where n is %s (>= 0 expected).", n); return value_init_error(); } else if (value_gt(n, value_int_max)) { value_error(1, "Domain Error: drop() is undefined where n is %s (<= %s expected).", n, value_int_max); return value_init_error(); } size_t i, max = value_get_long(n); value ptr = op; for (i = 0; i < max && ptr.type == VALUE_LST; ++i) { ptr = ptr.core.u_l[1]; } return value_set(ptr); } } else if (op.type == VALUE_PAR) { if (n.type == VALUE_MPZ) { if (value_lt(n, value_zero)) { value_error(1, "Domain Error: drop() is undefined where n is %s (>= 0 expected).", n); return value_init_error(); } else if (value_gt(n, value_int_max)) { value_error(1, "Domain Error: drop() is undefined where n is %s (<= %s expected).", n, value_int_max); return value_init_error(); } size_t i, max = value_get_long(n); value ptr = op; for (i = 0; i < max && ptr.type == VALUE_PAR; ++i) { ptr = ptr.core.u_p->tail; } return value_set(ptr); } } else { value_error(1, "Type Error: drop() is undefined where op1 is %ts (array or list expected).", op); if (n.type == VALUE_MPZ) return value_init_error(); } value_error(1, "Type Error: drop() is undefined where op2 is %ts (integer expected).", n); return value_init_error(); }
value value_take(value op, value n) { if (op.type == VALUE_NIL) { return value_init_nil(); } else if (op.type == VALUE_ARY) { if (n.type == VALUE_MPZ) { value start = value_set_long(0); value res = value_range(op, start, n); value_clear(&start); return res; } } else if (op.type == VALUE_LST) { if (n.type == VALUE_MPZ) { if (value_lt(n, value_zero)) { value_error(1, "Domain Error: drop() is undefined where n is %s (>= 0 expected).", n); return value_init_error(); } else if (value_gt(n, value_int_max)) { value_error(1, "Domain Error: drop() is undefined where n is %s (<= %s expected).", n, value_int_max); return value_init_error(); } value res = value_init_nil(); size_t i, max = value_get_long(n); value ptr = op; for (i = 0; i < max && ptr.type == VALUE_LST; ++i) { value_cons_now(ptr.core.u_l[0], &res); ptr = ptr.core.u_l[1]; } value_reverse_now(&res); return res; } } else if (op.type == VALUE_PAR) { if (n.type == VALUE_MPZ) { if (value_lt(n, value_zero)) { value_error(1, "Domain Error: drop() is undefined where n is %s (>= 0 expected).", n); return value_init_error(); } else if (value_gt(n, value_int_max)) { value_error(1, "Domain Error: drop() is undefined where n is %s (<= %s expected).", n, value_int_max); return value_init_error(); } value res = value_init_nil(); size_t i, max = value_get_long(n); value ptr = op; for (i = 0; i < max && ptr.type == VALUE_PAR; ++i) { value_cons_now(ptr.core.u_p->tail, &res); ptr = ptr.core.u_p->tail; } value_reverse_now(&res); return res; } } else { value_error(1, "Type Error: take() is undefined where op is %ts (array or list expected).", op); if (n.type == VALUE_MPZ) return value_init_error(); } value_error(1, "Type Error: drop() is undefined where n is %ts (integer expected).", n); return value_init_error(); }
static void update_ff(t_forcerec *fr,int nparm,t_range range[],int param_val[]) { static double *sigma=NULL,*eps=NULL,*c6=NULL,*cn=NULL,*bhama=NULL,*bhamb=NULL,*bhamc=NULL; real val,*nbfp; int i,j,atnr; atnr = fr->ntype; nbfp = fr->nbfp; if (fr->bBHAM) { if (bhama == NULL) { snew(bhama,atnr); snew(bhamb,atnr); snew(bhamc,atnr); } } else { if (sigma == NULL) { snew(sigma,atnr); snew(eps,atnr); snew(c6,atnr); snew(cn,atnr); } } /* Get current values for everything */ for(i=0; (i<nparm); i++) { if (ga) val = range[i].rval; else val = value_range(&range[i],param_val[i]); if(debug) fprintf(debug,"val = %g\n",val); switch (range[i].ptype) { case eseSIGMA: sigma[range[i].atype] = val; break; case eseEPSILON: eps[range[i].atype] = val; break; case eseBHAMA: bhama[range[i].atype] = val; break; case eseBHAMB: bhamb[range[i].atype] = val; break; case eseBHAMC: bhamc[range[i].atype] = val; break; case eseCELLX: scale[XX] = val; break; case eseCELLY: scale[YY] = val; break; case eseCELLZ: scale[ZZ] = val; break; default: gmx_fatal(FARGS,"Unknown ptype"); } } if (fr->bBHAM) { for(i=0; (i<atnr); i++) { for(j=0; (j<=i); j++) { BHAMA(nbfp,atnr,i,j) = BHAMA(nbfp,atnr,j,i) = sqrt(bhama[i]*bhama[j]); BHAMB(nbfp,atnr,i,j) = BHAMB(nbfp,atnr,j,i) = sqrt(bhamb[i]*bhamb[j]); BHAMC(nbfp,atnr,i,j) = BHAMC(nbfp,atnr,j,i) = sqrt(bhamc[i]*bhamc[j]); } } } else { /* Now build a new matrix */ for(i=0; (i<atnr); i++) { c6[i] = 4*eps[i]*pow(sigma[i],6.0); cn[i] = 4*eps[i]*pow(sigma[i],ff.npow); } for(i=0; (i<atnr); i++) { for(j=0; (j<=i); j++) { C6(nbfp,atnr,i,j) = C6(nbfp,atnr,j,i) = sqrt(c6[i]*c6[j]); C12(nbfp,atnr,i,j) = C12(nbfp,atnr,j,i) = sqrt(cn[i]*cn[j]); } } } if (debug) { if (!fr->bBHAM) for(i=0; (i<atnr); i++) fprintf(debug,"atnr = %2d sigma = %8.4f eps = %8.4f\n",i,sigma[i],eps[i]); for(i=0; (i<atnr); i++) { for(j=0; (j<atnr); j++) { if (fr->bBHAM) fprintf(debug,"i: %2d j: %2d A: %10.5e B: %10.5e C: %10.5e\n",i,j, BHAMA(nbfp,atnr,i,j),BHAMB(nbfp,atnr,i,j),BHAMC(nbfp,atnr,i,j)); else fprintf(debug,"i: %2d j: %2d c6: %10.5e cn: %10.5e\n",i,j, C6(nbfp,atnr,i,j),C12(nbfp,atnr,i,j)); } } } }