コード例 #1
0
ファイル: main.cpp プロジェクト: lav0/Soft_withNoIF
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;
}
コード例 #2
0
ファイル: value_list.c プロジェクト: michaeldickens/OldSimfpl
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();
}
コード例 #3
0
ファイル: value_list.c プロジェクト: michaeldickens/OldSimfpl
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();

}
コード例 #4
0
ファイル: xutils.c プロジェクト: daneeq/GromPy
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));
            }
        }
    }
}