linux/lib/reed_solomon/decode_rs.c
<<
>>
Prefs
   1/*
   2 * lib/reed_solomon/decode_rs.c
   3 *
   4 * Overview:
   5 *   Generic Reed Solomon encoder / decoder library
   6 *
   7 * Copyright 2002, Phil Karn, KA9Q
   8 * May be used under the terms of the GNU General Public License (GPL)
   9 *
  10 * Adaption to the kernel by Thomas Gleixner (t9hx@v2.6omon/decode_rs.cib/r].def="lib/reed_solomon/decode_rs.c#L9" id="L9" clas1s="line"  name="L1">   1/*
   2 * lib/reed_solomo$Id: " id="L10" ,v 1.7n, K5/11/07a1s:14:59 g2.6omon/Exp $="lib/reed_solomon/decode_rs.c#L10" id="L10" clas="line"1 name="L3">   3 *
   4 * Overview:   5   6 *
   7 * Copyright 2002,wrappe" c="lib/reed_solomon/decode_rs.c#L4" id="L4" clas1s="line"1 name="L8">   8 * May be used un/="lib/reed_solomon/decode_rs.c#L4" id="L4" clas1s="line"1 name="L9">   9  10deg_lambda="co, ?return=lid="L=el_results"
urn">el="co, ?return=lid="L=deg_omega_results"
urn">deg_omega="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L1">   1i="co, ?return=lid="L=j_results"
urn">j="co, ?return=lid="L=r_results"
urn">r="co, ?return=lid="L=k_results"
urn">k="co, ?return=lid="L=pad_results"
urn">pad="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"  name="L2">   2nn="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=nn_results"
urn">nn="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L3">   3nroots="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=nroots_results"
urn">nroots="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L4">   4fcr="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=fcr_results"
urn">fcr="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L5">   5prim="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=prim_results"
urn">prim="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L6">   6iprim="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=iprim_results"
urn">iprim="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L7">   7uint16_t="co *?return=lid="L=alpha_to_results"
urn">alpha_to="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=alpha_to_results"
urn">alpha_to="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L8">   8uint16_t="co *?return=lid="L=iof x_of_results"
urn">iof x_of="co = ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=iof x_of_results"
urn">iof x_of="co;eed_solomon/decode_rs.c#L2" id="L2" classs="line"2 name="L9">   9uint16_t="co ?return=lid="L=u_results"
urn">u="co, ?return=lid="L=q_results"
urn">q="co, ?return=lid="L=tmp_results"
urn">tmp="co, ?return=lid="L=num1_results"
urn">num1="co, ?return=lid="L=num2_results"
urn">num2="co, ?return=lid="L=den_results"
urn">den="co, ?return=lid="L=discr_r_results"
urn">discr_r="co, ?return=lid="L=syn_error_results"
urn">syn_error="co;eed_solomon/decode_rs.c#L2" id="L2" clas3ss="line3 name="L10">  10 *
   1/*
   2 * lib/reed_soloeeeeeeee*e220snetesamaxc="lib/reed_solomon/decode_rs.c#L4" id="L4" clas3s="line"  name="L3">   3 *
   4uint16_t="co ?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=nroots_results"
urn">nroots="co + 1], ?return=lid="L=syn_results"
urn">syn="co[?return=lid="L=nroots_results"
urn">nroots="co];eed_solomon/decode_rs.c#L2" id="L2" clas3s="line"3 name="L5">   5uint16_t="co ?return=lid="L=b_results"
urn">b="co[?return=lid="L=nroots_results"
urn">nroots="co + 1], ?return=lid="L=t_results"
urn">t="co[?return=lid="L=nroots_results"
urn">nroots="co + 1], ?return=lid="L=omega_results"
urn">omega="co[?return=lid="L=nroots_results"
urn">nroots="co + 1];eed_solomon/decode_rs.c#L2" id="L2" clas3s="line"3 name="L6">   6uint16_t="co ?return=lid="L=root_results"
urn">root="co[?return=lid="L=nroots_results"
urn">nroots="co], ?return=lid="L=reg_results"
urn">reg="co[?return=lid="L=nroots_results"
urn">nroots="co + 1], ?return=lid="L=loc_results"
urn">loc="co[?return=lid="L=nroots_results"
urn">nroots="co];eed_solomon/decode_rs.c#L2" id="L2" clas3s="line"3 name="L7">   7count="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas3s="line"3 name="L8">   8uint16_t="co ?return=lid="L=msk_results"
urn">msk="co = (?return=lid="L=uint16_t_results"
urn">uint16_t="co) ?return=lid="L=rs_results"
urn">rs="co-pan>?return=lid="L=nn_results"
urn">nn="co;eed_solomon/decode_rs.c#L2" id="L2" clas3s="line"3 name="L9">   9  10 *
ter for     1pad="co = ?return=lid="L=nn_results"
urn">nn="co - ?return=lid="L=nroots_results"
urn">nroots="co - ?return=lid="L=len_results"
urn">len="co;eed_solomon/decode_rs.c#L2" id="L2" clas4s="line"4 name="L2">   2BUG_ON="co(?return=lid="L=pad_results"
urn">pad="co < 0 || ?return=lid="L=pad_results"
urn">pad="co pan>= ?return=lid="L=nn_results"
urn">nn="co);eed_solomon/decode_rs.c#L2" id="L2" clas4s="line"4 name="L3">   3   4 *
   5s="co != ?return=lid="L=NULL_results"
urn">NULL="co)eed_solomon/decode_rs.c#L4" id="L4" clas4s="line"4 name="L6">   6ded="L="co;eed_solomon/decode_rs.c#L2" id="L2" clas4s="line"4 name="L7">   7   8 *
   9 *
  10i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=i_results"
urn">i="co++)eed_solomon/decode_rs.c#L4" id="L4" clas5s="line"5 name="L1">   1syn="co[?return=lid="L=i_results"
urn">i="co] = (((?return=lid="L=uint16_t_results"
urn">uint16_t="co) ?return=lid="L=data_results"
urn">data="co[0]) ^ ?return=lid="L=invmsk_results"
urn">invmsk="co) & ?return=lid="L=msk_results"
urn">msk="co;eed_solomon/decode_rs.c#L2" id="L2" clas5s="line"5 name="L2">   2   3j="co = 1; ?return=lid="L=j_results"
urn">j="co < ?return=lid="L=len_results"
urn">len="co; ?return=lid="L=j_results"
urn">j="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas5s="line"5 name="L4">   4i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas5s="line"  name="L5">   5syn="co[?return=lid="L=i_results"
urn">i="co] == 0) {eed_solomon/decode_rs.c#L2" id="L2" clas5s="line"5 name="L6">   6syn="co[?return=lid="L=i_results"
urn">i="co] = (((?return=lid="L=uint16_t_results"
urn">uint16_t="co) ?return=lid="L=data_results"
urn">data="co[?return=lid="L=j_results"
urn">j="co]) ^eed_solomon/decode_rs.c#L2" id="L2" clas5s="line"5 name="L7">   7invmsk="co) & ?return=lid="L=msk_results"
urn">msk="co;eed_solomon/decode_rs.c#L2" id="L2" clas5s="line"5 name="L8">   8   9syn="co[?return=lid="L=i_results"
urn">i="co] = ((((?return=lid="L=uint16_t_results"
urn">uint16_t="co) ?return=lid="L=data_results"
urn">data="co[?return=lid="L=j_results"
urn">j="co]) ^eed_solomon/decode_rs.c#L2" id="L2" clas6ss="line6 name="L10">  10invmsk="co) & ?return=lid="L=msk_results"
urn">msk="co) ^eed_solomon/decode_rs.c#L2" id="L2" clas6s="line"6 name="L1">   1alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=syn_results"
urn">syn="co[?return=lid="L=i_results"
urn">i="co]] +eed_solomon/decode_rs.c#L2" id="L2" clas6s="line"6 name="L2">   2fcr="co + ?return=lid="L=i_results"
urn">i="co) * ?return=lid="L=prim_results"
urn">prim="co)];eed_solomon/decode_rs.c#L2" id="L2" clas6s="line"6 name="L3">   3   4   5   6   7j="co = 0; ?return=lid="L=j_results"
urn">j="co < ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=j_results"
urn">j="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas6s="line"6 name="L8">   8i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas6s="line"6 name="L9">   9syn="co[?return=lid="L=i_results"
urn">i="co] == 0) {eed_solomon/decode_rs.c#L2" id="L2" clas7ss="line7 name="L10">  10syn="co[?return=lid="L=i_results"
urn">i="co] = ((?return=lid="L=uint16_t_results"
urn">uint16_t="co) ?return=lid="L=par_results"
urn">par="co[?return=lid="L=j_results"
urn">j="co]) & ?return=lid="L=msk_results"
urn">msk="co;eed_solomon/decode_rs.c#L2" id="L2" clas7s="line"7 name="L1">   1   2syn="co[?return=lid="L=i_results"
urn">i="co] = (((?return=lid="L=uint16_t_results"
urn">uint16_t="co) ?return=lid="L=par_results"
urn">par="co[?return=lid="L=j_results"
urn">j="co]) & ?return=lid="L=msk_results"
urn">msk="co) ^eed_solomon/decode_rs.c#L2" id="L2" clas7s="line"7 name="L3">   3alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=syn_results"
urn">syn="co[?return=lid="L=i_results"
urn">i="co]] +eed_solomon/decode_rs.c#L2" id="L2" clas7s="line"7 name="L4">   4fcr="co+?return=lid="L=i_results"
urn">i="co)*?return=lid="L=prim_results"
urn">prim="co)];eed_solomon/decode_rs.c#L2" id="L2" clas7s="line"7 name="L5">   5   6   7   8s="co = ?return=lid="L=syn_results"
urn">syn="co;eed_solomon/decode_rs.c#L2" id="L2" clas7s="line"7 name="L9">   9  10 *
   1syn_error="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas8s="line"8 name="L2">   2i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas8s="line"8 name="L3">   3syn_error="co |= ?return=lid="L=s_results"
urn">s="co[?return=lid="L=i_results"
urn">i="co];eed_solomon/decode_rs.c#L2" id="L2" clas8s="line"8 name="L4">   4s="co[?return=lid="L=i_results"
urn">i="co] = ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=s_results"
urn">s="co[?return=lid="L=i_results"
urn">i="co]];eed_solomon/decode_rs.c#L2" id="L2" clas8s="line"8 name="L5">   5   6   7syn_error="co) {eed_solomon/decode_rs.c#L2" id="L2" clas8s="line"  name="L8">   8 *
   9 *
  10 * Adaption to teeeeeeeeeeeeeeee*/="lib/reed_solomon/decode_rs.c#L4" id="L4" clas9s="line"9 name="L1">   1count="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas9s="line"9 name="L2">   2finish="co;eed_solomon/decode_rs.c#L2" id="L2" clas9s="line"9 name="L3">   3   4   5ded="L="co:eed_solomon/decode_rs.c#L4" id="L4" clas9s="line"9 name="L6">   6memset="co(&?return=lid="L=lambda_results"
urn">lambda="co[1], 0, ?return=lid="L=nroots_results"
urn">nroots="co * sizLof(?return=lid="L=lambda_results"
urn">lambda="co[0]));eed_solomon/decode_rs.c#L2" id="L2" clas9s="line"9 name="L7">   7lambda="co[0] = 1;eed_solomon/decode_rs.c#L2" id="L2" clas9s="line"9 name="L8">   8   9no_eras="co > 0) {eed_solomon/decode_rs.c#L2" id="L2" clas10ss="line"  name="L10">  10 *
   1lambda="co[1] = ?return=lid="L=alpha_to_results"
urn">alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co,eed_solomon/decode_rs.c#L4" id="L4" clas10s="line"10 name="L2">   2prim="co * (?return=lid="L=nn_results"
urn">nn="co - 1 - ?return=lid="L=eras_pos_results"
urn">eras_pos="co[0]))];eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L3">   3i="co = 1; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=no_eras_results"
urn">no_eras="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L4">   4u="co = ?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=prim_results"
urn">prim="co * (?return=lid="L=nn_results"
urn">nn="co - 1 - ?return=lid="L=eras_pos_results"
urn">eras_pos="co[?return=lid="L=i_results"
urn">i="co]));eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L5">   5j="co = ?return=lid="L=i_results"
urn">i="co + 1; ?return=lid="L=j_results"
urn">j="co > 0; ?return=lid="L=j_results"
urn">j="co--) {eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L6">   6tmp="co = ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=j_results"
urn">j="co - 1]];eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L7">   7tmp="co != ?return=lid="L=nn_results"
urn">nn="co) {eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L8">   8lambda="co[?return=lid="L=j_results"
urn">j="co] ^=eed_solomon/decode_rs.c#L2" id="L2" clas10s="line"10 name="L9">   9alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=u_results"
urn">u="co + ?return=lid="L=tmp_results"
urn">tmp="co)];eed_solomon/decode_rs.c#L2" id="L2" clas1ass="line"" name="L10">  10   1   2   3   4   5i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co + 1; ?return=lid="L=i_results"
urn">i="co++)eed_solomon/decode_rs.c#L4" id="L4" clas11s="line"11 name="L6">   6b="co[?return=lid="L=i_results"
urn">i="co] = ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co]];eed_solomon/decode_rs.c#L2" id="L2" clas11s="line"11 name="L7">   7   8 *
   9 *
term    error+erasure="lib/reed_solomon/decode_rs.c#L10" id="L10" classs="line"2 name="L10">  10 * Adaption to teeeeeeee* locator polynomial="lib/reed_solomon/decode_rs.c#L10" id="L10" class="line" 2 name="L1">   1/*
   2r="co = ?return=lid="L=no_eras_results"
urn">no_eras="co;eed_solomon/decode_rs.c#L4" id="L4" clas1ss="line"12 name="L3">   3el="co = ?return=lid="L=no_eras_results"
urn">no_eras="co;eed_solomon/decode_rs.c#L4" id="L4" clas1ss="line"12 name="L4">   4r="co <= ?return=lid="L=nroots_results"
urn">nroots="co) { mment"> *
   5 *
   6discr_r="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas1ss="line"12 name="L7">   7i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=r_results"
urn">r="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas1ss="line"12 name="L8">   8lambda="co[?return=lid="L=i_results"
urn">i="co] != 0) && (?return=lid="L=s_results"
urn">s="co[?return=lid="L=r_results"
urn">r="co - ?return=lid="L=i_results"
urn">i="co - 1] != ?return=lid="L=nn_results"
urn">nn="co)) {eed_solomon/decode_rs.c#L2" id="L2" clas1ss="line"12 name="L9">   9discr_r="co ^=eed_solomon/decode_rs.c#L2" id="L2" clas13ss="line13 name="L10">  10alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co,eed_solomon/decode_rs.c#L2" id="L2" clas13s="line" 3 name="L1">   1iof x_of="co[?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co]] +eed_solomon/decode_rs.c#L2" id="L2" clas1ss="line"13 name="L2">   2s="co[?return=lid="L=r_results"
urn">r="co - ?return=lid="L=i_results"
urn">i="co - 1])];eed_solomon/decode_rs.c#L2" id="L2" clas13s="line"1  name="L3">   3   4   5discr_r="co = ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=discr_r_results"
urn">discr_r="co];    mment"> *
   6discr_r="co == ?return=lid="L=nn_results"
urn">nn="co) {eed_solomon/decode_rs.c#L2" id="L2" clas13s="line"13 name="L7">   7 *
   s below: B(x) <-- x*B(x) */="lib/reed_solomon/decode_rs.c#L4" id="L4" clas13s="line"13 name="L8">   8memmovL="co (&?return=lid="L=b_results"
urn">b="co[1], ?return=lid="L=b_results"
urn">b="co, ?return=lid="L=nroots_results"
urn">nroots="co * sizLof (?return=lid="L=b_results"
urn">b="co[0]));eed_solomon/decode_rs.c#L2" id="L2" clas13s="line"13 name="L9">   9b="co[0] = ?return=lid="L=nn_results"
urn">nn="co;eed_solomon/decode_rs.c#L2" id="L2" clas14ss="line14 name="L10">  10   1 *
   s below: T(x) <-- lambda(x)-discr_r*x*b(x) */="lib/reed_solomon/decode_rs.c#L4" id="L4" clas14s="line"14 name="L2">   2t="co[0] = ?return=lid="L=lambda_results"
urn">lambda="co[0];eed_solomon/decode_rs.c#L2" id="L2" clas14s="line"14 name="L3">   3i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas14s="line"1  name="L4">   4b="co[?return=lid="L=i_results"
urn">i="co] != ?return=lid="L=nn_results"
urn">nn="co) {eed_solomon/decode_rs.c#L2" id="L2" clas14s="line"14 name="L5">   5t="co[?return=lid="L=i_results"
urn">i="co + 1] = ?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co + 1] ^eed_solomon/decode_rs.c#L2" id="L2" clas14s="line"14 name="L6">   6alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=discr_r_results"
urn">discr_r="co +eed_solomon/decode_rs.c#L2" id="L2" clas14s="line"14 name="L7">   7b="co[?return=lid="L=i_results"
urn">i="co])];eed_solomon/decode_rs.c#L2" id="L2" clas14s="line"14 name="L8">   8   9t="co[?return=lid="L=i_results"
urn">i="co + 1] = ?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co + 1];eed_solomon/decode_rs.c#L2" id="L2" clas15ss="line15 name="L10">  10   1el="co <= ?return=lid="L=r_results"
urn">r="co + ?return=lid="L=no_eras_results"
urn">no_eras="co - 1) {eed_solomon/decode_rs.c#L2" id="L2" clas15s="line"15 name="L2">   2el="co = ?return=lid="L=r_results"
urn">r="co + ?return=lid="L=no_eras_results"
urn">no_eras="co - ?return=lid="L=el_results"
urn">el="co;eed_solomon/decode_rs.c#L2" id="L2" clas15s="line"15 name="L3">   3 *
   4 * Overview:   s below: B(x) <-- inv(discr_r)ef="lib/reed_solomon/decode_rs.c#L4" id="L4" clas15s="line"1  name="L5">   5 *   Generic Reepppppppppppppppppppppppppppppppp*olambda(x)="lib/reed_solomon/decode_rs.c#L4" id="L4" clas15s="line"15 name="L6">   6 *
   7i="co = 0; ?return=lid="L=i_results"
urn">i="co <= ?return=lid="L=nroots_results"
urn">nroots="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas15s="line"15 name="L8">   8b="co[?return=lid="L=i_results"
urn">i="co] = (?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co] == 0) ? ?return=lid="L=nn_results"
urn">nn="co :eed_solomon/decode_rs.c#L4" id="L4" clas15s="line"15 name="L9">   9rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co]]eed_solomon/decode_rs.c#L4" id="L4" clas16ss="line16 name="L10">  10discr_r="co + ?return=lid="L=nn_results"
urn">nn="co);eed_solomon/decode_rs.c#L2" id="L2" clas16s="line"16 name="L1">   1   2   3 *
   s below: B(x) <-- x*B(x) */="lib/reed_solomon/decode_rs.c#L4" id="L4" clas16s="line"16 name="L4">   4memmovL="co(&?return=lid="L=b_results"
urn">b="co[1], ?return=lid="L=b_results"
urn">b="co, ?return=lid="L=nroots_results"
urn">nroots="co * sizLof(?return=lid="L=b_results"
urn">b="co[0]));eed_solomon/decode_rs.c#L2" id="L2" clas16s="line"16 name="L5">   5b="co[0] = ?return=lid="L=nn_results"
urn">nn="co;eed_solomon/decode_rs.c#L2" id="L2" clas16s="line"1  name="L6">   6   7memcpy="co(?return=lid="L=lambda_results"
urn">lambda="co, ?return=lid="L=t_results"
urn">t="co, (?return=lid="L=nroots_results"
urn">nroots="co + 1) * sizLof(?return=lid="L=t_results"
urn">t="co[0]));eed_solomon/decode_rs.c#L2" id="L2" clas16s="line"16 name="L8">   8   9  10   1 *
   2deg_lambda="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas17s="line"17 name="L3">   3i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=nroots_results"
urn">nroots="co + 1; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas17s="line"17 name="L4">   4lambda="co[?return=lid="L=i_results"
urn">i="co] = ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co]];eed_solomon/decode_rs.c#L2" id="L2" clas17s="line"17 name="L5">   5lambda="co[?return=lid="L=i_results"
urn">i="co] != ?return=lid="L=nn_results"
urn">nn="co)eed_solomon/decode_rs.c#L2" id="L2" clas17s="line"17 name="L6">   6deg_lambda="co = ?return=lid="L=i_results"
urn">i="co;eed_solomon/decode_rs.c#L2" id="L2" clas17s="line"1  name="L7">   7   8 *
   9memcpy="co(&?return=lid="L=reg_results"
urn">reg="co[1], &?return=lid="L=lambda_results"
urn">lambda="co[1], ?return=lid="L=nroots_results"
urn">nroots="co * sizLof(?return=lid="L=reg_results"
urn">reg="co[0]));eed_solomon/decode_rs.c#L2" id="L2" clas18ss="line18 name="L10">  10count="co = 0;              ?ment"> *
   1i="co = 1, ?return=lid="L=k_results"
urn">k="co = ?return=lid="L=iprim_results"
urn">iprim="co - 1; ?return=lid="L=i_results"
urn">i="co <= ?return=lid="L=nn_results"
urn">nn="co; ?return=lid="L=i_results"
urn">i="co++, ?return=lid="L=k_results"
urn">k="co = ?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=k_results"
urn">k="co + ?return=lid="L=iprim_results"
urn">iprim="co)) {eed_solomon/decode_rs.c#L2" id="L2" clas18s="line"18 name="L2">   2q="co = 1;          ?ment"> *
   3j="co = ?return=lid="L=deg_lambda_results"
urn">deg_lambda="co; ?return=lid="L=j_results"
urn">j="co > 0; ?return=lid="L=j_results"
urn">j="co--) {eed_solomon/decode_rs.c#L2" id="L2" clas18s="line"18 name="L4">   4reg="co[?return=lid="L=j_results"
urn">j="co] != ?return=lid="L=nn_results"
urn">nn="co) {eed_solomon/decode_rs.c#L2" id="L2" clas18s="line"18 name="L5">   5reg="co[?return=lid="L=j_results"
urn">j="co] = ?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=reg_results"
urn">reg="co[?return=lid="L=j_results"
urn">j="co] + ?return=lid="L=j_results"
urn">j="co);eed_solomon/decode_rs.c#L2" id="L2" clas18s="line"18 name="L6">   6q="co ^= ?return=lid="L=alpha_to_results"
urn">alpha_to="co[?return=lid="L=reg_results"
urn">reg="co[?return=lid="L=j_results"
urn">j="co]];eed_solomon/decode_rs.c#L2" id="L2" clas18s="line"18 name="L7">   7   8   9q="co != 0)eed_solomon/decode_rs.c#L2" id="L2" clas1sss="line19 name="L10">  10 *
   1 *
   2root="co[?return=lid="L=count_results"
urn">count="co] = ?return=lid="L=i_results"
urn">i="co;eed_solomon/decode_rs.c#L2" id="L2" clas19s="line"19 name="L3">   3loc="co[?return=lid="L=count_results"
urn">count="co] = ?return=lid="L=k_results"
urn">k="co;eed_solomon/decode_rs.c#L2" id="L2" clas19s="line"19 name="L4">   4 *
   5 *   Generic Reepppppppppppppppp* abort homasearch to save time="lib/reed_solomon/decode_rs.c#L10" id="L10" cla9s="line"19 name="L6">   6 *
   7count="co == ?return=lid="L=deg_lambda_results"
urn">deg_lambda="co)eed_solomon/decode_rs.c#L2" id="L2" clas1ss="line"19 name="L8">   8   9  10deg_lambda="co != ?return=lid="L=count_results"
urn">count="co) {eed_solomon/decode_rs.c#L2" id="L2" clas20s="line"20 name="L1">   1 *
   2 *   Generic Reepppppppppppppppp* deg(lambda) unequal to numbereof roots => uncorrectable="lib/reed_solomon/decode_rs.c#L9" id="L9" clas203="line"20 name="L3">   3 *
tected="lib/reed_solomon/decode_rs.c#L9" id="L9" clas20s="line"20 name="L4">   4 * Overview:   5count="co = -mreturn=lid="L=EBADMSG_results"
urn">EBADMSG="co;eed_solomon/decode_rs.c#L2" id="L2" clas20s="line"20 name="L6">   6finish="co;eed_solomon/decode_rs.c#L2" id="L2" clas20s="line"20 name="L7">   7   8 *
   9 *
  10 * Adaption to teeeeeeee* x**nroots). ineiof xoax+*. Also fiof deg(omega).="lib/reed_solomon/decode_rs.c#L4" id="L4" clas2as="line"2  name="L1">   1/*
   2deg_omega="co = ?return=lid="L=deg_lambda_results"
urn">deg_lambda="co - 1;eed_solomon/decode_rs.c#L4" id="L4" clas213="line"21 name="L3">   3i="co = 0; ?return=lid="L=i_results"
urn">i="co <= ?return=lid="L=deg_omega_results"
urn">deg_omega="co; ?return=lid="L=i_results"
urn">i="co++) {eed_solomon/decode_rs.c#L2" id="L2" clas21s="line"21 name="L4">   4tmp="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas21s="line"21 name="L5">   5j="co = ?return=lid="L=i_results"
urn">i="co; ?return=lid="L=j_results"
urn">j="co >= 0; ?return=lid="L=j_results"
urn">j="co--) {eed_solomon/decode_rs.c#L2" id="L2" clas21s="line"21 name="L6">   6s="co[?return=lid="L=i_results"
urn">i="co - ?return=lid="L=j_results"
urn">j="co] != ?return=lid="L=nn_results"
urn">nn="co) && (?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=j_results"
urn">j="co] != ?return=lid="L=nn_results"
urn">nn="co))eed_solomon/decode_rs.c#L2" id="L2" clas21s="line"21 name="L7">   7tmp="co ^=eed_solomon/decode_rs.c#L2" id="L2" clas21s="line"21 name="L8">   8alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=s_results"
urn">s="co[?return=lid="L=i_results"
urn">i="co - ?return=lid="L=j_results"
urn">j="co] + ?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=j_results"
urn">j="co])];eed_solomon/decode_rs.c#L2" id="L2" clas2ss="line"21 name="L9">   9  10omega="co[?return=lid="L=i_results"
urn">i="co] = ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=tmp_results"
urn">tmp="co];eed_solomon/decode_rs.c#L2" id="L2" clas2ss="line"22 name="L1">   1   2   3 *
   4 * Overview:   5 *   Generic Reepppppppp* inv(X(l))**(fcr-1) and den = lambda_pr(inv(X(l))) all inepoly-ax+*="lib/reed_solomon/decode_rs.c#L9" id="L9" clas2ss="line"22 name="L6">   6 *
   7j="co = ?return=lid="L=count_results"
urn">count="co - 1; ?return=lid="L=j_results"
urn">j="co >= 0; ?return=lid="L=j_results"
urn">j="co--) {eed_solomon/decode_rs.c#L2" id="L2" clas2ss="line"22 name="L8">   8num1="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas2ss="line"22 name="L9">   9i="co = ?return=lid="L=deg_omega_results"
urn">deg_omega="co; ?return=lid="L=i_results"
urn">i="co >= 0; ?return=lid="L=i_results"
urn">i="co--) {eed_solomon/decode_rs.c#L2" id="L2" clas23ss="line23 name="L10">  10omega="co[?return=lid="L=i_results"
urn">i="co] != ?return=lid="L=nn_results"
urn">nn="co)eed_solomon/decode_rs.c#L2" id="L2" clas23s="line"23 name="L1">   1num1="co ^= ?return=lid="L=alpha_to_results"
urn">alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=omega_results"
urn">omega="co[?return=lid="L=i_results"
urn">i="co] +eed_solomon/decode_rs.c#L2" id="L2" clas2ss="line"23 name="L2">   2i="co * ?return=lid="L=root_results"
urn">root="co[?return=lid="L=j_results"
urn">j="co])];eed_solomon/decode_rs.c#L2" id="L2" clas23s="line"2  name="L3">   3   4num2="co = ?return=lid="L=alpha_to_results"
urn">alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=root_results"
urn">root="co[?return=lid="L=j_results"
urn">j="co] * (?return=lid="L=fcr_results"
urn">fcr="co - 1) + ?return=lid="L=nn_results"
urn">nn="co)];eed_solomon/decode_rs.c#L2" id="L2" clas23s="line"23 name="L5">   5den="co = 0;eed_solomon/decode_rs.c#L2" id="L2" clas23s="line"23 name="L6">   6   7 *
   8 *
   9i="co = ?return=lid="L=min_results"
urn">min="co(?return=lid="L=deg_lambda_results"
urn">deg_lambda="co, ?return=lid="L=nroots_results"
urn">nroots="co - 1) & ~1; ?return=lid="L=i_results"
urn">i="co >= 0; ?return=lid="L=i_results"
urn">i="co -= 2) {eed_solomon/decode_rs.c#L2" id="L2" clas24ss="line24 name="L10">  10lambda="co[?return=lid="L=i_results"
urn">i="co + 1] != ?return=lid="L=nn_results"
urn">nn="co) {eed_solomon/decode_rs.c#L2" id="L2" clas24s="line"24 name="L1">   1den="co ^= ?return=lid="L=alpha_to_results"
urn">alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co, ?return=lid="L=lambda_results"
urn">lambda="co[?return=lid="L=i_results"
urn">i="co + 1] +eed_solomon/decode_rs.c#L2" id="L2" clas24s="line"24 name="L2">   2i="co * ?return=lid="L=root_results"
urn">root="co[?return=lid="L=j_results"
urn">j="co])];eed_solomon/decode_rs.c#L2" id="L2" clas24s="line"24 name="L3">   3   4   5 *
   6num1="co != 0 && ?return=lid="L=loc_results"
urn">loc="co[?return=lid="L=j_results"
urn">j="co] >= ?return=lid="L=pad_results"
urn">pad="co) {eed_solomon/decode_rs.c#L2" id="L2" clas24s="line"24 name="L7">   7uint16_t="co ?return=lid="L=cor_results"
urn">cor="co = ?return=lid="L=alpha_to_results"
urn">alpha_to="co[?return=lid="L=rs_modnn_results"
urn">rs_modnn="co(?return=lid="L=rs_results"
urn">rs="co,?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=num1_results"
urn">num1="co] +eed_solomon/decode_rs.c#L2" id="L2" clas24s="line"24 name="L8">   8iof x_of="co[?return=lid="L=num2_results"
urn">num2="co] +eed_solomon/decode_rs.c#L2" id="L2" clas24s="line"24 name="L9">   9nn="co - ?return=lid="L=iof x_of_results"
urn">iof x_of="co[?return=lid="L=den_results"
urn">den="co])];eed_solomon/decode_rs.c#L2" id="L2" clas25ss="line25 name="L10">  10 *
   1/*
   2corr="co) {eed_solomon/decode_rs.c#L2" id="L2" clas25s="line"25 name="L3">   3corr="co[?return=lid="L=j_results"
urn">j="co] = ?return=lid="L=cor_results"
urn">cor="co;eed_solomon/decode_rs.c#L2" id="L2" clas25s="line"25 name="L4">   4   5 *
   6 *
   7 *
   8data="co && (?return=lid="L=loc_results"
urn">loc="co[?return=lid="L=j_results"
urn">j="co] < (?return=lid="L=nn_results"
urn">nn="co - ?return=lid="L=nroots_results"
urn">nroots="co)))eed_solomon/decode_rs.c#L2" id="L2" clas25s="line"25 name="L9">   9data="co[?return=lid="L=loc_results"
urn">loc="co[?return=lid="L=j_results"
urn">j="co] - ?return=lid="L=pad_results"
urn">pad="co] ^= ?return=lid="L=cor_results"
urn">cor="co;eed_solomon/decode_rs.c#L2" id="L2" clas26ss="line26 name="L10">  10   1   2   3   4finish="co:eed_solomon/decode_rs.c#L4" id="L4" clas26s="line"26 name="L5">   5eras_pos="co != ?return=lid="L=NULL_results"
urn">NULL="co) {eed_solomon/decode_rs.c#L2" id="L2" clas26s="line"2  name="L6">   6i="co = 0; ?return=lid="L=i_results"
urn">i="co < ?return=lid="L=count_results"
urn">count="co; ?return=lid="L=i_results"
urn">i="co++)eed_solomon/decode_rs.c#L4" id="L4" clas26s="line"26 name="L7">   7eras_pos="co[?return=lid="L=i_results"
urn">i="co] = ?return=lid="L=loc_results"
urn">loc="co[?return=lid="L=i_results"
urn">i="co] - ?return=lid="L=pad_results"
urn">pad="co;eed_solomon/decode_rs.c#L2" id="L2" clas26s="line"26 name="L8">   8   9count="co;eed_solomon/decode_rs.c#L2" id="L2" clas27ss="line27 name="L10">  10   1   2
Tomaoriginal LXR software by homaed_solomohttp://sourceforge.net/projects/lxr">LXR an>
unity="co, this experi
  ux.no">lxr@>  ux.no="co.
lxr.> ux.no kindly hostedbbyaed_solomohttp://www.redpill-> pro.no">Redpill L pro AS="co, provider of L ux consulting and operatel s services sincel1995.