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; }
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; }
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
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; }
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); }
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(); }