var poly = (function(){ //this part is all for generating parameters function base_polynomial_c(intercept){ //coefficient format // x - intercept return([fr.neg(intercept), 1n]); } function mul_scalar(s, p){ //multiply a polynomial by a scalar. var r = []; for(var i = 0; i < p.length; i++){ r.push(fr.mul(s, p[i])); }; return(r); }; function mul_c(a, b){ //multiplying 2 polynomials in coefficient form. if(a.length === 0){ return([]); }; if(b.length === 0){ return([]); }; if(a.length === 1){ return(mul_scalar(a[0], b)); }; var x = mul_scalar(a[0], b); var y = mul_c(a.slice(1), [0n].concat(b)); return(add_c(x, y)); }; //coefficient format doesn't need to be the same length function add_c(a, b){ //adding 2 polynomials in coefficient form if(a.length === 0){ return(b); }; if(b.length === 0){ return(a); }; var c = fr.add(a[0], b[0]); var rest = add_c(a.slice(1), b.slice(1)); return([c].concat(rest)); }; function mul_c_all(l){ var p = l[0]; for(var i = 1; i