Exemplo n.º 1
0
int main(int argc, const char* argv[])
{
    int acc = 0;
    for (int a = 1; a < 10000; ++a)
    {
        int b = dsum(a);
        if (dsum(b) == a && a != b)
            acc += a;
    }
    
    std::cout << acc << std::endl;
  
    return 0;
}
Exemplo n.º 2
0
double scaleTau2(int n, double *x, double *mu) {
  double *dwork1 = new double[n];
  double *dwork2 = new double[n];
  const double C1 = 4.5, C2squared = 9.0;
//  const double C2 = 3.0;
  const double Es2c = 0.9247153921761315;
	double medx = 0.0, sigma0 = 0.0, tmpsum = 0.0;
  int i = 0, IONE = 1;

  F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE);
  medx = my_median(n, dwork1);
  for(i = 0; i < n; i++)
    dwork1[i] = fabs(dwork1[i] - medx);
  sigma0 = my_median(n, dwork1);

  F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE);
	for(i = 0; i < n; i++) {
		dwork1[i] = fabs(dwork1[i] - medx);
		dwork1[i] = dwork1[i] / (C1 * sigma0);
		dwork2[i] = 1.0 - R_pow_di(dwork1[i], 2);
		dwork2[i] = R_pow_di(((fabs(dwork2[i]) + dwork2[i])/2.0), 2);
  }

  tmpsum = dsum(n, dwork2, 1, dwork1);

  for(i = 0; i < n; i++)
		dwork1[i] = x[i] * dwork2[i];

	*mu = dsum(n, dwork1, 1, dwork2) / tmpsum;

  F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE);
  for(i = 0; i < n; i++) {
    dwork2[i] = R_pow_di((dwork1[i] - *mu) / sigma0, 2);
    dwork2[i] = dwork2[i] > C2squared ? C2squared : dwork2[i];
  }

  double ans = sigma0 * sqrt(dsum(n, dwork2, 1, dwork1) / (n*Es2c));
  delete[] dwork1;
  delete[] dwork2;
  return ans;
}
Exemplo n.º 3
0
void cheb(int N, Array<double, 1> &x, Array<double, 2> &D)
{
    int i,j;
    int sign;
    Array<double, 1> dsum(N+2);
    Array<double, 1> c(N+2);
    Array<double, 2> dX(N+2, N+2);

    //Resize output arrays
    x.resize(N+2);
    D.resize(N+2, N+2);

    /* Start initialize and checking input*/
    if (N==0) return;
    sign = 1;

    /* Start computing */
    for (i=0; i<=N+1; i++) {
        x(i) = cos(M_PI*i/(N+1));
        c(i) = sign;
        sign = -sign;
    }
    c(0) = 2;
    c(N+1) = 2*c(N+1);
    for (i=0; i<=N+1; i++) {
        for (j=0; j<=N+1; j++) {
            dX(i,j) = x(i) - x(j);
            if (i==j) dX(i,j)++;
        }
    }
    for (i=0; i<=N+1; i++) {
        dsum(i) = 0.0;
        for (j=0; j<=N+1; j++) {
            D(i,j) = c(i)/c(j)/dX(i,j);
            dsum(i) += D(i,j);
        }
    }
    for (i=0; i<=N+1; i++) D(i,i) -= dsum(i);
} // Done
Exemplo n.º 4
0
ll res(ll a) {
	ll r=0,z;
	ll ten=10,occ=1;
	int at=0;
	while(a) {
		while(a%ten) {
			r+=dsum(a/occ-1)*occ+sum[at];
			a-=occ;
		}
		occ=ten; ten*=10; at++;
	}
	return r;
}
Exemplo n.º 5
0
static void alpha(fmpz_t rop, const long *u, const long *v, 
    const fmpz *a, const fmpz *dinv, const fmpz **mu, long M, const long **C, const long *lenC, 
    long n, long d, long p, long N)
{
    const long ku = diagfrob_k(u, n, d);

    long i;
    fmpz_t f, g, P, PN;

    fmpz_init(f);
    fmpz_init(g);
    fmpz_init_set_ui(P, p);
    fmpz_init(PN);
    fmpz_pow_ui(PN, P, N);

    fmpz_pow_ui(rop, P, ku);
    fmpz_mod(rop, rop, PN);

    for (i = 0; i <= n; i++)
    {
        long e = (p * (u[i] + 1) - (v[i] + 1)) / d;

        fmpz_powm_ui(f, a + i, e, PN);
        dsum(g, dinv, mu[i], M, C[i], lenC[i], a + i, u[i], v[i], n, d, p, N);
        fmpz_mul(rop, rop, f);
        fmpz_mul(rop, rop, g);
        fmpz_mod(rop, rop, PN);
    }

    if (ku % 2 != 0 && !fmpz_is_zero(rop))
    {
        fmpz_sub(rop, PN, rop);
    }

    fmpz_clear(f);
    fmpz_clear(g);
    fmpz_clear(P);
    fmpz_clear(PN);
}
Exemplo n.º 6
0
void
d_scalar_scalar_1(void)
{
    // d(x,x)?

    if (equal(p1, p2)) {
        push(one);
        return;
    }

    // d(a,x)?

    if (!iscons(p1)) {
        push(zero);
        return;
    }

    if (isadd(p1)) {
        dsum();
        return;
    }

    if (car(p1) == symbol(MULTIPLY)) {
        dproduct();
        return;
    }

    if (car(p1) == symbol(POWER)) {
        dpower();
        return;
    }

    if (car(p1) == symbol(DERIVATIVE)) {
        dd();
        return;
    }

    if (car(p1) == symbol(LOG)) {
        dlog();
        return;
    }

    if (car(p1) == symbol(SIN)) {
        dsin();
        return;
    }

    if (car(p1) == symbol(COS)) {
        dcos();
        return;
    }

    if (car(p1) == symbol(TAN)) {
        dtan();
        return;
    }

    if (car(p1) == symbol(ARCSIN)) {
        darcsin();
        return;
    }

    if (car(p1) == symbol(ARCCOS)) {
        darccos();
        return;
    }

    if (car(p1) == symbol(ARCTAN)) {
        darctan();
        return;
    }

    if (car(p1) == symbol(SINH)) {
        dsinh();
        return;
    }

    if (car(p1) == symbol(COSH)) {
        dcosh();
        return;
    }

    if (car(p1) == symbol(TANH)) {
        dtanh();
        return;
    }

    if (car(p1) == symbol(ARCSINH)) {
        darcsinh();
        return;
    }

    if (car(p1) == symbol(ARCCOSH)) {
        darccosh();
        return;
    }

    if (car(p1) == symbol(ARCTANH)) {
        darctanh();
        return;
    }

    if (car(p1) == symbol(ABS)) {
        dabs();
        return;
    }

    if (car(p1) == symbol(SGN)) {
        dsgn();
        return;
    }

    if (car(p1) == symbol(HERMITE)) {
        dhermite();
        return;
    }

    if (car(p1) == symbol(ERF)) {
        derf();
        return;
    }

    if (car(p1) == symbol(ERFC)) {
        derfc();
        return;
    }

    /*if (car(p1) == symbol(BESSELJ)) {
    	if (iszero(caddr(p1)))
    		dbesselj0();
    	else
    		dbesseljn();
    	return;
    }*/

    /*if (car(p1) == symbol(BESSELY)) {
    	if (iszero(caddr(p1)))
    		dbessely0();
    	else
    		dbesselyn();
    	return;
    }*/

    if (car(p1) == symbol(INTEGRAL) && caddr(p1) == p2) {
        derivative_of_integral();
        return;
    }

    dfunction();
}