public double calc_weight(double x) { if (x < 1.0) return p0 + x * x * (p2 + x * p3); if (x < 2.0) return q0 + x * (q1 + x * (q2 + x * q3)); return 0.0; } };