pub fn new(
        vs: Vec<Polynomial<FE>>,
        ws: Vec<Polynomial<FE>>,
        ys: Vec<Polynomial<FE>>,
        target: Polynomial<FE>,
        number_of_inputs: usize,
        number_of_outputs: usize,
    ) -> Result<Self, CreationError> {
        if vs.len() != ws.len()
            || vs.len() != ys.len()
            || number_of_inputs + number_of_outputs > vs.len()
        {
            Err(CreationError::PolynomialVectorsSizeMismatch)
        } else {
            Ok(Self {
                vs,
                ws,
                ys,
                target,
                number_of_inputs,
                number_of_outputs,
            })
        }
    }
Creates a new QAP
This expects vectors to be organized like:
v0,w0,y0
inputs associated v,w,y polynomials
mid associated polynomials
outputs associated v,w,y polynomials
examples/pinocchio/src/qap.rs