sword_smith icon

coefficients-reversed

sword_smith | PRO | 05/26/21 10:10:44 PM UTC (Edited) | 0 ⭐ | 836 👁️ | Never ⏰ | []
Rust |

800 B

|

None

|

0 👍

/

0 👎

// calculate a reversed representation of the coefficients of
// prod_{i=0}^{N}((x- q_i))    
    pub fn prod_helper(input: &[i128]) -> Vec<i128> {
        if let Some((q_j, elements)) = input.split_first() {
            match elements {
                [] => vec![1, -q_j],
                _ => {
                    // The recursive call calculates (x-q_j)*rec = x*rec - q_j*rec
                    let mut rec = Polynomial::prod_helper(elements);
                    rec.push(0);
                    let mut i = rec.len() - 1;
                    while i > 0 {
                        rec[i] -= q_j * rec[i - 1];
                        i -= 1;
                    }
                    rec
                }
            }
        } else {
            panic!("Empty array received");
        }
    }

Comments