Lines Matching refs:poly

115 	struct gf_poly poly;  member
315 static inline int deg(unsigned int poly) in deg() argument
318 return fls(poly)-1; in deg()
382 uint32_t poly; in compute_syndromes() local
395 poly = *ecc++; in compute_syndromes()
397 while (poly) { in compute_syndromes()
398 i = deg(poly); in compute_syndromes()
402 poly ^= (1 << i); in compute_syndromes()
585 static int find_poly_deg1_roots(struct bch_control *bch, struct gf_poly *poly, in find_poly_deg1_roots() argument
590 if (poly->c[0]) in find_poly_deg1_roots()
592 roots[n++] = mod_s(bch, GF_N(bch)-bch->a_log_tab[poly->c[0]]+ in find_poly_deg1_roots()
593 bch->a_log_tab[poly->c[1]]); in find_poly_deg1_roots()
600 static int find_poly_deg2_roots(struct bch_control *bch, struct gf_poly *poly, in find_poly_deg2_roots() argument
606 if (poly->c[0] && poly->c[1]) { in find_poly_deg2_roots()
608 l0 = bch->a_log_tab[poly->c[0]]; in find_poly_deg2_roots()
609 l1 = bch->a_log_tab[poly->c[1]]; in find_poly_deg2_roots()
610 l2 = bch->a_log_tab[poly->c[2]]; in find_poly_deg2_roots()
642 static int find_poly_deg3_roots(struct bch_control *bch, struct gf_poly *poly, in find_poly_deg3_roots() argument
648 if (poly->c[0]) { in find_poly_deg3_roots()
650 e3 = poly->c[3]; in find_poly_deg3_roots()
651 c2 = gf_div(bch, poly->c[0], e3); in find_poly_deg3_roots()
652 b2 = gf_div(bch, poly->c[1], e3); in find_poly_deg3_roots()
653 a2 = gf_div(bch, poly->c[2], e3); in find_poly_deg3_roots()
675 static int find_poly_deg4_roots(struct bch_control *bch, struct gf_poly *poly, in find_poly_deg4_roots() argument
681 if (poly->c[0] == 0) in find_poly_deg4_roots()
685 e4 = poly->c[4]; in find_poly_deg4_roots()
686 d = gf_div(bch, poly->c[0], e4); in find_poly_deg4_roots()
687 c = gf_div(bch, poly->c[1], e4); in find_poly_deg4_roots()
688 b = gf_div(bch, poly->c[2], e4); in find_poly_deg4_roots()
689 a = gf_div(bch, poly->c[3], e4); in find_poly_deg4_roots()
903 *h = &((struct gf_poly_deg1 *)f)[gcd->deg].poly; in factor_polynomial()
915 struct gf_poly *poly, unsigned int *roots) in find_poly_roots() argument
920 switch (poly->deg) { in find_poly_roots()
923 cnt = find_poly_deg1_roots(bch, poly, roots); in find_poly_roots()
926 cnt = find_poly_deg2_roots(bch, poly, roots); in find_poly_roots()
929 cnt = find_poly_deg3_roots(bch, poly, roots); in find_poly_roots()
932 cnt = find_poly_deg4_roots(bch, poly, roots); in find_poly_roots()
937 if (poly->deg && (k <= GF_M(bch))) { in find_poly_roots()
938 factor_polynomial(bch, k, poly, &f1, &f2); in find_poly_roots()
1090 static int build_gf_tables(struct bch_control *bch, unsigned int poly) in build_gf_tables() argument
1093 const unsigned int k = 1 << deg(poly); in build_gf_tables()
1107 x ^= poly; in build_gf_tables()