char *ft_s_itoa(int nb) { int div; char *ret; int len; int i; i = 0; len = calc_len(nb); div = calc_div(len); ret = ft_strnew(len + 1); if (nb < 0) { ret[i] = '-'; nb *= -1; i++; } else if (nb == 0) return ("0"); while (len--) { ret[i] = ((nb / div) + 48); nb -= ((nb / div) * div); div /= 10; i++; } return (ret); }
void calc_compute(op_t *op) { if (op->type != OP_CMP) return; op_t *cop = (op_t *) op->arg1; switch (cop->type) { case OP_ADD: calc_add(cop); break; case OP_SUB: calc_sub(cop); break; case OP_MUL: calc_mul(cop); break; case OP_DIV: calc_div(cop); break; case OP_MOD: calc_mod(cop); break; default: break; } }
void avx512f_test (void) { int i, sign; union128 res1, res2, res3, res4, src1, src2; MASK_TYPE mask = 0; float res_ref[SIZE]; sign = -1; for (i = 0; i < SIZE; i++) { src1.a[i] = 1.5 + 34.67 * i * sign; src2.a[i] = -22.17 * i * sign + 1.0; res1.a[i] = DEFAULT_VALUE; res3.a[i] = DEFAULT_VALUE; sign = sign * -1; } res1.x = _mm_mask_div_ss (res1.x, mask, src1.x, src2.x); res2.x = _mm_maskz_div_ss (mask, src1.x, src2.x); res3.x = _mm_mask_div_round_ss (res3.x, mask, src1.x, src2.x, _MM_FROUND_NO_EXC); res4.x = _mm_maskz_div_round_ss (mask, src1.x, src2.x, _MM_FROUND_NO_EXC); calc_div (res_ref, src1.a, src2.a); MASK_MERGE () (res_ref, mask, 1); if (check_union128 (res1, res_ref)) abort (); MASK_ZERO () (res_ref, mask, 1); if (check_union128 (res2, res_ref)) abort (); calc_div (res_ref, src1.a, src2.a); MASK_MERGE () (res_ref, mask, 1); if (check_union128 (res3, res_ref)) abort (); MASK_ZERO () (res_ref, mask, 1); if (check_union128 (res4, res_ref)) abort (); }
static void prepare_root_dentry(char *buf) { int bitmap_size = 0; int extend_size; int dir_cnt = 0; char *pos = NULL; struct vbfs_dirent_header dir_header; struct vbfs_dirent dirent; extend_size = vbfs_params.extend_size_kb * 1024; memset(buf, 0, extend_size); memset(&dirent, 0, sizeof(dirent)); /* write dir header */ dir_cnt = (extend_size - VBFS_DIR_META_SIZE) / VBFS_DIR_SIZE; dir_header.bitmap_size = calc_div(dir_cnt, VBFS_DIR_SIZE * CHAR_BIT); dir_header.dir_capacity = dir_cnt - bitmap_size; dir_header.group_no = 0; dir_header.total_extends = 0; dir_header.dir_self_count = 1; dir_header.dir_total_count = 1; dir_header.next_extend = 0; pos = buf; save_dirent_header((vbfs_dir_header_dk_t *) pos, &dir_header); /* write dir bitmap */ pos = buf + VBFS_DIR_META_SIZE; set_first_bits(pos, 1); /* write dir */ dirent.i_ino = ROOT_INO; dirent.i_pino = ROOT_INO; dirent.i_mode = VBFS_FT_DIR; dirent.i_size = extend_size; dirent.i_atime = time(NULL); dirent.i_ctime = time(NULL); dirent.i_mtime = time(NULL); dirent.padding = 0; memset(dirent.name, 0, NAME_LEN); pos = buf + VBFS_DIR_META_SIZE + dir_header.bitmap_size * VBFS_DIR_SIZE; save_dirent((struct vbfs_dirent_disk *) pos, &dirent); }
int main() { int i,j,temp; long sum=0; for(i=3;i<=30000;i++) { arr[i]=calc_div(i); //printf("%d %d\n",i,arr[i]); } // prnt(); for(i=3;i<=10000;i++) { temp=arr[i]; if(temp==i) continue; if(arr[temp]==i) { sum+=i; //printf("%d %d\n",i,temp); } } printf("%ld",sum); return 0; }
int test(int argc, char* argv[]) { if ( argc != 3 ) { std::cout << "error." << std::endl; std::cout << "./run <n> <endtimestep>" << std::endl; return 1; } const int n = std::atoi(argv[1]); //---------------------------------------------- // define space domain //---------------------------------------------- const int D = 2; const real l = 1.0; const int hn = 3; //const int hn = 2; //---------------------------------------------- // define mesh //---------------------------------------------- const Mesh mesh( hn, l, n, l, n ); //mesh.print_mesh_data(); //---------------------------------------------- // define time domain //---------------------------------------------- const real dt = 0.1 * mesh.delta(0) / 1.0; //const real dt = 1.0e-5; const real endtime = 200 * 1.0 / 1.0; const int endstep = static_cast<int>(endtime / dt); //const int endstep = std::atoi(argv[2]); real * u = new real[mesh.size()]; real * v = new real[mesh.size()]; real * p = new real[mesh.size()]; real * nu = new real[mesh.size()]; real * nv = new real[mesh.size()]; uniform_value( u, 0.0, mesh ); uniform_value( v, 0.0, mesh ); uniform_value( nu, 0.0, mesh ); uniform_value( nv, 0.0, mesh ); uniform_value( p, 0.0, mesh ); boundary_update_u_v( u, v, mesh ); for ( int timestep = 0 ; timestep < endstep ; timestep++ ) { const Iter iter = time_marching_RK1_cavity( nu, nv, p, u, v, dt, mesh ); swap( &nu, &u ); swap( &nv, &v ); //const Iter iter = time_marching_RK2_cavity( &u, &v, &p, dt, mesh ); if ( timestep % 100 == 0 ) { real * const div = new real[mesh.size()]; uniform_value( div, 0.0, mesh ); calc_div( div, u, v, mesh ); const std::string div_filename( "div.dat" ); const std::string div_position( "cell_center" ); //save_array( D, div, div_filename, div_position, mesh ); abs_array( div, mesh ); const real max_abs_div_value = max_from_array( div, mesh ); delete[] div; std::cout << timestep / static_cast<real>(endstep) * 100 << " %"; std::cout << "\t timestep = " << timestep; std::cout << "\titer = " << iter.get_iter() << "\terr = " << iter.get_error(); std::cout << "\tdiv = " << std::scientific << std::showpos << max_abs_div_value << std::endl; } } const std::string u_filename( "u.dat" ); const std::string u_position( "staggered_x" ); save_array( D, u, u_filename, u_position, mesh ); const std::string v_filename( "v.dat" ); const std::string v_position( "staggered_y" ); save_array( D, v, v_filename, v_position, mesh ); const std::string p_filename( "p.dat" ); const std::string p_position( "cell_center" ); save_array( D, p, p_filename, p_position, mesh ); output_result( "result_u.dat", "result_v.dat", u, v, mesh ); delete[] u; delete[] v; delete[] p; delete[] nu; delete[] nv; return 0; }
double smplVec::calc_eveness(rare_map& cnts){ //double sha = calc_div(vec,1); if (Shannon == -1.f){ vector<double> tm = calc_div(cnts, 1); } return(Shannon / log((double)richness)); }
double smplVec::calc_eveness(const vector<uint>& vec){ //double sha = calc_div(vec,1); if (Shannon == -1.f){ vector<double> tm = calc_div(vec, 1); } return(Shannon / log((double)richness)); }
/* main */ int main (int argc, char** argv) { unsigned int calc_mod = 0; double idata = 0; double kdata = 0; double result = 0; if(argc < 2 || argc > 4) { printf("enter cmd numbers must greater than 2 and less than 5!!!\n\n"); printf("命令格式如下所示:\n"); printf("./calc_sim 1 xxx xxx add\n"); printf("./calc_sim 2 xxx xxx sub\n"); printf("./calc_sim 3 xxx xxx multi\n"); printf("./calc_sim 4 xxx xxx div\n"); printf("./calc_sim 5 PI\n"); printf("./calc_sim 6 xxx sin\n"); printf("./calc_sim 7 xxx cos\n"); printf("./calc_sim 8 xxx tan\n"); printf("./calc_sim 9 xxx fabs\n"); printf("./calc_sim 10 xxx exp\n"); printf("./calc_sim 11 xxx log\n"); printf("./calc_sim 12 xxx log10\n"); printf("./calc_sim 13 xxx xxx pow\n"); printf("./calc_sim 14 rand\n"); return -1; } argv++; calc_mod=atoi(*argv); if(calc_mod < 1 || calc_mod > 14){ printf("命令格式如下所示:\n"); printf("./calc_sim 1 xxx xxx add\n"); printf("./calc_sim 2 xxx xxx sub\n"); printf("./calc_sim 3 xxx xxx multi\n"); printf("./calc_sim 4 xxx xxx div\n"); printf("./calc_sim 5 PI\n"); printf("./calc_sim 6 xxx sin\n"); printf("./calc_sim 7 xxx cos\n"); printf("./calc_sim 8 xxx tan\n"); printf("./calc_sim 9 xxx fabs\n"); printf("./calc_sim 10 xxx exp\n"); printf("./calc_sim 11 xxx log\n"); printf("./calc_sim 12 xxx log10\n"); printf("./calc_sim 13 xxx xxx pow\n"); printf("./calc_sim 14 rand\n"); return -1; } if(argc==2){ printf("Enter is mod<%d> \n", calc_mod); switch(calc_mod){ case 5: result = calc_PI(); printf("calc PI result is %f\n",result); break; case 14: result = calc_rand(); printf("calc rand result is %f\n",result); break; default: if(calc_mod==1) printf("add 格式:./calc_sim 1 xxx xxx\n"); if(calc_mod==2) printf("sub 格式:./calc_sim 2 xxx xxx\n"); if(calc_mod==3) printf("multi 格式:./calc_sim 3 xxx xxx\n"); if(calc_mod==4) printf("div 格式:./calc_sim 4 xxx xxx\n"); if(calc_mod==5) printf("PI 格式:./calc_sim 5\n"); if(calc_mod==6) printf("sin 格式:./calc_sim 6 xxx\n"); if(calc_mod==7) printf("cos 格式:./calc_sim 7 xxx\n"); if(calc_mod==8) printf("tan 格式:./calc_sim 8 xxx\n"); if(calc_mod==9) printf("fabs 格式:./calc_sim 9 xxx\n"); if(calc_mod==10) printf("exp 格式:./calc_sim 10 xxx\n"); if(calc_mod==11) printf("log 格式:./calc_sim 11 xxx\n"); if(calc_mod==12) printf("log10 格式:./calc_sim 12 xxx\n"); if(calc_mod==13) printf("pow 格式:./calc_sim 13 xxx xxx\n"); if(calc_mod==14) printf("rand 格式:./calc_sim 14\n"); break; } } if(argc==3){ argv ++; idata = atof(*argv); printf("Enter is mod<%d> data_f<%f> \n", calc_mod, idata); switch(calc_mod){ case 6: result = calc_sin(idata); printf("calc sin (%f) result is %f\n",idata,result); break; case 7: result = calc_cos(idata); printf("calc cos (%f) result is %f\n",idata,result); break; case 8: result = calc_tan(idata); printf("calc tan (%f) result is %f\n",idata,result); break; case 9: result = calc_fabs(idata); printf("calc fabs (%f) result is %f\n",idata,result); break; case 10: result = calc_exp(idata); printf("calc exp (%f) result is %f\n",idata,result); break; case 11: if(idata<=0){ printf("真数必须大于0\n"); break; } result = calc_log(idata); printf("calc log (%f) result is %f\n",idata,result); break; case 12: if(idata<=0){ printf("真数必须大于0\n"); break; } result = calc_log10(idata); printf("calc log10 (%f) result is %f\n",idata,result); break; default: if(calc_mod==1) printf("add 格式:./calc_sim 1 xxx xxx\n"); if(calc_mod==2) printf("sub 格式:./calc_sim 2 xxx xxx\n"); if(calc_mod==3) printf("multi 格式:./calc_sim 3 xxx xxx\n"); if(calc_mod==4) printf("div 格式:./calc_sim 4 xxx xxx\n"); if(calc_mod==5) printf("PI 格式:./calc_sim 5\n"); if(calc_mod==6) printf("sin 格式:./calc_sim 6 xxx\n"); if(calc_mod==7) printf("cos 格式:./calc_sim 7 xxx\n"); if(calc_mod==8) printf("tan 格式:./calc_sim 8 xxx\n"); if(calc_mod==9) printf("fabs 格式:./calc_sim 9 xxx\n"); if(calc_mod==10) printf("exp 格式:./calc_sim 10 xxx\n"); if(calc_mod==11) printf("log 格式:./calc_sim 11 xxx\n"); if(calc_mod==12) printf("log10 格式:./calc_sim 12 xxx\n"); if(calc_mod==13) printf("pow 格式:./calc_sim 13 xxx xxx\n"); if(calc_mod==14) printf("rand 格式:./calc_sim 14\n"); break; } } if(argc==4){ argv ++; idata = atof(*argv); argv ++; kdata = atof(*argv); printf("Enter is mod<%d> data_f<%f> data_b<%f> \n", calc_mod, idata, kdata); switch(calc_mod) { case 1: result = calc_add(idata, kdata); printf("Calc add (%f + %f) result is %f\n", idata, kdata, result); break; case 2: result = calc_sub(idata, kdata); printf("Calc sub (%f - %f) result is %f\n", idata, kdata, result); break; case 3: result = calc_multi(idata,kdata); printf("calc multi(%f * %f) result is %f\n",idata,kdata,result); break; case 4: if(kdata==0){ printf("除数不能为0\n"); break;} else result = calc_div(idata,kdata); printf("calc div(%f / %f) result is %f\n",idata,kdata,result); break; case 13: result = calc_pow(idata,kdata); printf("calc pow (%f , %f) result is %f\n",idata,kdata,result); break; default: if(calc_mod==1) printf("add 格式:./calc_sim 1 xxx xxx\n"); if(calc_mod==2) printf("sub 格式:./calc_sim 2 xxx xxx\n"); if(calc_mod==3) printf("multi 格式:./calc_sim 3 xxx xxx\n"); if(calc_mod==4) printf("div 格式:./calc_sim 4 xxx xxx\n"); if(calc_mod==5) printf("PI 格式:./calc_sim 5\n"); if(calc_mod==6) printf("sin 格式:./calc_sim 6 xxx\n"); if(calc_mod==7) printf("cos 格式:./calc_sim 7 xxx\n"); if(calc_mod==8) printf("tan 格式:./calc_sim 8 xxx\n"); if(calc_mod==9) printf("fabs 格式:./calc_sim 9 xxx\n"); if(calc_mod==10) printf("exp 格式:./calc_sim 10 xxx\n"); if(calc_mod==11) printf("log 格式:./calc_sim 11 xxx\n"); if(calc_mod==12) printf("log10 格式:./calc_sim 12 xxx\n"); if(calc_mod==13) printf("pow 格式:./calc_sim 13 xxx xxx\n"); if(calc_mod==14) printf("rand 格式:./calc_sim 14\n"); break; } } return 0; }
int main(int argc,char **argv){ unsigned int calc_mod = 0; double idata = 0; double kdata = 0; double result = 0; if(argc <2){ printf("enter cmd numbers must >= 2!!\n"); return -1; } if(2 == argc){ argv++; calc_mod = atoi(*argv); switch(calc_mod){ case 5: printf("Calc PI is %f\n",calc_pi()); break; case 14: result = calc_rand(); printf("Calc rand result is %f\n", result); break; default: printf("Input abnormally\n"); break; } } if(3 == argc){ argv++; calc_mod = atoi(*argv); argv++; idata = atof(*argv); switch(calc_mod){ case 6: result = calc_sin((double) idata); printf("Calc sin (%f) result is %f\n",idata,result); break; case 7: result= calc_cos((double) idata); printf("Calc cos (%f) result is %f\n",idata,result); break; case 8: if(PI/2 == idata ||-PI/2 == idata){ printf("Input abnormally\n"); break; } result = calc_tan((double) idata); printf("Calc tan (%f) result is %f\n",idata,result); break; case 9: result = calc_fabs((double) idata); printf("Calc tan (%f) result is %f\n",idata,result); break; case 10: result = calc_exp((double) idata); printf("Calc exp (%f) result is %f\n",idata,result); break; case 11: if(idata <= 0){ printf("Input abnormally\n"); break; } result = calc_ln((double) idata); printf("Calc ln (%f) result is %f\n",idata,result); break; case 12: if(idata <= 0){ printf("Input abnormally\n"); break; } result = calc_log10((double) idata); printf("Calc log10 (%f) result is %f\n",idata,result); break; default: printf("Input abnormally\n"); break; } } if(4 == argc){ argv++; calc_mod = atoi(*argv); argv++; idata = atof(*argv); argv++; kdata = atof(*argv); switch(calc_mod){ case 1: result = calc_add(idata, kdata); printf("Calc add (%f + %f) result is %f\n", idata, kdata, result); break; case 2: result = calc_sub(idata, kdata); printf("Calc sub (%f - %f) result is %f\n", idata, kdata, result); break; case 3: result = calc_mul(idata,kdata); printf("Calc mul (%f * %f) result is %f\n", idata, kdata, result); break; case 4: if(0 == kdata){ printf("Input abnormaly\n"); break; } result = calc_div(idata,kdata); printf("Calc div (%f / %f) result is %f\n", idata, kdata, result); case 13: result = calc_pow(idata,kdata); printf("Calc pow (%f / %f) result is %f\n", idata, kdata, result); break; default: printf("Input abnormally\n"); break; } } return 0; }
static int vbfs_prepare_superblock() { __u32 extend_size = 0; __u64 disk_size = 0; __u32 extend_count = 0; __u32 bad_max_count = 0; __u32 bad_extend_count = 0; __u32 bm_capacity = 0; __u32 bitmap_cnt = 0; extend_size = vbfs_params.extend_size_kb * 1024; disk_size = vbfs_params.total_size; printf("disk size %llu, extend size %u\n", disk_size, extend_size); /* extend_count */ extend_count = disk_size / extend_size; printf("extend count %u\n", extend_count); /* bad extend (record bad extend number)*/ bad_max_count = calc_div(extend_count, vbfs_params.bad_ratio); bad_extend_count = calc_div(bad_max_count, extend_size / 8); printf("bad use %u extends\n", bad_extend_count); /* bitmap */ bm_capacity = (extend_size - BITMAP_META_SIZE) * 8; bitmap_cnt = calc_div(extend_count, bm_capacity); memset(&vbfs_superblk, 0, sizeof(vbfs_superblk)); /* * generate superblock * */ vbfs_superblk.s_magic = VBFS_SUPER_MAGIC; vbfs_superblk.s_extend_size = extend_size; vbfs_superblk.s_extend_count = extend_count; vbfs_superblk.s_file_idx_len = vbfs_params.file_idx_len * 1024; /* bad extend */ vbfs_superblk.bad_count = 0; vbfs_superblk.bad_extend_count = bad_extend_count; vbfs_superblk.bad_extend_current = 0; /* first extend is used by superblock*/ vbfs_superblk.bad_extend_offset = 1; /* bitmap */ vbfs_superblk.bitmap_count = bitmap_cnt; vbfs_superblk.bitmap_offset = bad_extend_count + 1; vbfs_superblk.bitmap_current = 0; vbfs_superblk.s_ctime = time(NULL); vbfs_superblk.s_mount_time = 0; /* 0 represent clean, 1 unclean */ vbfs_superblk.s_state = 0; uuid_generate(vbfs_superblk.uuid); return 0; }