/** * @param i * @param j * @return */ public double[] componentCovar(int i, int j) { if (m_P == null) { return null; } int n = m_n - m_start; double[] c = new double[n]; for (int z = 0; z < n; ++z) { c[z] = m_P.matrix(z).get(i, j) * m_ser2; } return c; }
/** * @param pos * @param a * @param p * @param c * @param cvar */ public void save(int pos, DataBlock a, Matrix p, double c, double cvar) { int np = pos - m_start; if (np < 0) { return; } if (m_bA) { m_a.save(np, a); } if (m_bP && p != null) { m_P.save(np, p); } m_c[np] = c; m_cvar[np] = cvar; }
/** * @param z * @return */ public double[] zvariance(DataBlock z) { if (m_P == null) { return null; } if (m_r != z.getLength()) { return null; } int iz = check(z); double[] var = new double[m_n - m_start]; if (iz >= 0) { return componentVar(iz); } else { for (int i = 0; i < m_n - m_start; ++i) { var[i] = SymmetricMatrix.quadraticForm(m_P.matrix(i), z) * m_ser2; } } return var; }
/** * @param idx * @param z * @return */ public double zvariance(int idx, DataBlock z) { return m_P == null || idx < m_start ? Double.NaN : SymmetricMatrix.quadraticForm(m_P.matrix(idx - m_start), z) * m_ser2; }
/** * @param idx * @return */ public SubMatrix P(int idx) { return (m_P == null || idx < m_start) ? null : m_P.matrix(idx - m_start); }