11 using namespace Eigen;
17 OrthonormalFamily::OrthonormalFamily(
const MatrixXd& fam,
const double eps)
23 OrthonormalFamily::~OrthonormalFamily()
28 void OrthonormalFamily::computeOrthonormalFamily()
30 int n = family.cols();
31 int m = family.rows();
32 onf = MatrixXd::Zero(n,n);
33 origin = -VectorXi::Zero(n);
34 origin.setConstant(-1);
37 for (
int k=0; k<m; ++k)
41 onf.row(i) = family.row(k);
42 for (
int j=0; j<i;++j)
45 onf.row(i)-= onf.row(j) * VectorXd(onf.row(i)).dot(VectorXd(onf.row(j)));
47 double nrm = VectorXd(onf.row(i)).norm();
61 int OrthonormalFamily::getIndex()
const 67 const VectorXi& OrthonormalFamily::getOrigin()
const 73 const MatrixXd& OrthonormalFamily::getOnf()
const 79 void OrthonormalFamily::setFamily(
const MatrixXd& f)
85 void OrthonormalFamily::setEpsilon(
const double eps)