pub fn translate_x<X>(&self, x: X) -> Self
    where
        X: Into<f64> + Copy,
    {
        let d = Self::new(vec![1f64, x.into()]);

        let mut coef = vec![0f64; self.coef.len()];

        let (mut p, ri) = self.horner_division(&d);
        coef[self.coef.len() - 1] = ri;

        for i in (0..(self.coef.len() - 1)).rev() {
            if p.coef.len() == 1 {
                coef[i] = p.coef[0];
                break;
            }

            let t = p.horner_division(&d);
            coef[i] = t.1;
            p = t.0;
        }

        Self::new(coef)
    }
Linear transformation of a polynomial by a given x according to Horner's method

# Examples
```
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;

fn main() {
let a = poly(c!(1,3,2));
let translated = a.translate_x(2);

assert_eq!(translated.eval(3), 6_f64);
}
```
src/structure/polynomial.rs