diff --git a/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_engine.h b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_engine.h new file mode 100644 index 0000000000..268c0c9308 --- /dev/null +++ b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_engine.h @@ -0,0 +1,37 @@ +/* + * ===================================================================================== + * + * Filename: dual_manifold_engine.h + * + * Description: + * + * Version: 1.0 + * Created: 03/18/2008 11:08:05 PM EDT + * Revision: none + * Compiler: gcc + * + * Author: Nikolaos Vasiloglou (NV), nvasil@ieee.org + * Company: Georgia Tech Fastlab-ESP Lab + * + * ===================================================================================== + */ + +#ifndef DUAL_MANIFOLD_ENGINE_ +#define DUAL_MANIFOLD_ENGINE_ +#include "dual_manifold_objective.h" +#include "../l_bfgs/l_bfgs.h" + +template +class DualManifoldEngine { + public: + void Init(datanode *module); + void Destruct(); + + + private: + LBfgs lbfgs1_; + LBfgs lbfgs2_; +}; + +#include "dual_manifold_engine_impl.h" +#endif // DUAL_MANIFOLD_ENGINE_ diff --git a/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_engine_impl.h b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_engine_impl.h new file mode 100644 index 0000000000..3994a3e8ce --- /dev/null +++ b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_engine_impl.h @@ -0,0 +1,26 @@ +/* + * ===================================================================================== + * + * Filename: dual_manifold_engine_impl.h + * + * Description: + * + * Version: 1.0 + * Created: 03/18/2008 11:34:02 PM EDT + * Revision: none + * Compiler: gcc + * + * Author: Nikolaos Vasiloglou (NV), nvasil@ieee.org + * Company: Georgia Tech Fastlab-ESP Lab + * + * ===================================================================================== + */ + +template +DualManifoldEngine::Init(datanode *module, + Matrix &matrix1, Matrix &matrix2, + ArrayList > &pairs_to_consider, + ArrayList &dot_prod_values) { + +} + diff --git a/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective.h b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective.h index dac51ea84b..8bdc6b7f35 100644 --- a/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective.h +++ b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective.h @@ -38,7 +38,7 @@ class DualMaxVariance { private: datanode *module_; - ArrayList > *pairs_to_consider_; + ArrayList > pairs_to_consider_; ArrayList *dot_prod_values_; Matrix *other_part_; Vector eq_lagrange_mult_; diff --git a/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective_impl.h b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective_impl.h index c65e7aa4a7..cf88a9d0d7 100644 --- a/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective_impl.h +++ b/fastlib2/contrib/nvasil/dual_manifold/dual_manifold_objective_impl.h @@ -17,13 +17,13 @@ */ void DualMaxVarianc::eInit(datanode *module, Matrix *other_part, - ArrayList > *pairs_to_consider, + ArrayList > pairs_to_consider, ArrayList *dot_prod_values) { other_part_=other_part; module_=module; pairs_to_consider_=pairs_to_consider; dot_prod_values_=dot_prod_values; - eq_lagrange_mult_.Init(pairs_to_consider_->size()); + eq_lagrange_mult_.Init(pairs_to_consider_.size()); eq_lagrange_mult_.SetAll(1.0); } void DualMaxVariance::ComputeGradient(Matrix &coordinates, @@ -31,8 +31,8 @@ void DualMaxVariance::ComputeGradient(Matrix &coordinates, gradient->CopyValues(coordinates); la::Scale(-2.0, &gradient); for(index_t i=0; iGetColumnPtr(n2); double diff=la::Dot(dimension, p1, p2)-(*dot_prod_values)[i]; @@ -56,8 +56,8 @@ void DualMaxVariance::ComputeFeasibilityError(Matrix &coordinates, *error=0; index_t dimension=coordinates.n_rows(); for(index_t i=0; iGetColumnPtr(n2); *error+=math::Sqr(la::Dot(dimension, p1, p2)-(*dot_prod_values)[i]); @@ -67,8 +67,8 @@ double DualMaxVariance::ComputeLagrangian(Matrix &coordinates) { double lagrangian=0; ComputeObjective(coordinates, &lagrangian); for(index_t i=0; iGetColumnPtr(n2); double diff=la::Dot(dimension, p1, p2)-(*dot_prod_values)[i]; @@ -79,8 +79,8 @@ double DualMaxVariance::ComputeLagrangian(Matrix &coordinates) { void DualMaxVariance::UpdateLagrangeMult(Matrix &coordinates) { index_t dimension=coordinates.n_rows(); for(index_t i=0; iGetColumnPtr(n2); double diff=la::Dot(dimension, p1, p2)-(*dot_prod_values)[i];