public void elmult(final double[] y, final double[] b) {
    int i,j;
    if (b.length != n || y.length != n) throw new IllegalArgumentException("bad lengths");
    for (i=0;i<n;i++) {
      b[i] = 0.;
      for (j=0;j<=i;j++) b[i] += el[i][j]*y[j];
    }
  }