دانلود پروژه و سورس Reed Solomon درس معماری ذخیره سازی
پروژه و سورس Reed Solomon درس معماری ذخیره سازی پروژه و سورس Reed Solomon درس معماری ذخیره سازیبه زبان سی Cبه همراه دکیومنت و سورس با فرمت وردبه همراه منابع اصلی A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems موضوع مقاله :RAID به همراه سورس تمرینات درس به زبان سی و سی شارپ جواب سوالات و تمرینات پروژه: Reed Solomonتهیه کننده: جعفر عالی نژاد استاد: دکتر درس: معماری ذخیره سازی-----------------------------------------------------------------------------------------------*/#include
#include #include #include #include #include #define prim_poly_16 0210013typedef unsigned short unit;typedef struct { int *condensed_matrix; int *row_identities; } Condensed_Matrix;extern void gf_modar_setup();extern int gf_single_multiply(int a, int b);extern int gf_single_divide(int a, int b);extern void gf_fprint_matrix(FILE *f, int *m, int rows, int cols);extern void gf_fast_add_parity(void *to_add, void *to_modify, int size);extern void gf_add_parity(void *to_add, void *to_modify, int size);extern void gf_mult_region(void *region, int size, int factor);extern int gf_log(int value);extern int *gf_make_vandermonde(int rows, int cols);extern int *gf_make_dispersal_matrix(int rows, int cols);extern Condensed_Matrix *gf_condense_dispersal_matrix( int *disp, int *existing_rows, int rows, int cols);extern int *gf_invert_matrix(int *mat, int rows);extern int *gf_matrix_multiply(int *a, int *b, int rows); extern void gf_write_matrix(FILE *f, int *a, int rows, int cols);extern int *gf_read_matrix(FILE *f, int *rows, int *cols);static int gf_already_setup = 0;static int Modar_w = 16;static int Modar_nw = 65536;static int Modar_nwm1 = 65535;static int Modar_poly = prim_poly_16;static int *B_TO_J;static int *J_TO_B;static int Modar_M;static int Modar_N;static int Modar_Iam;int gf_single_multiply(int , int yyy){ unsigned int sum_j; unit zzz; gf_modar_setup(); if ( == 0 || yyy == 0) { zzz = 0; } else { sum_j = (int) (B_TO_J[] + (int) B_TO_J[yyy]); if (sum_j >= Modar_nwm1) sum_j -= Modar_nwm1; zzz = J_TO_B[sum_j]; } return zzz;}int gf_single_divide(int a, int b){ int sum_j; gf_modar_setup(); if (b == 0) return -1; if (a == 0) return 0; sum_j = B_TO_J[a] - B_TO_J[b]; if (sum_j < 0) sum_j += Modar_nwm1;
درباره این سایت