GCS: Extension of ConstraintEqual to allow for a proportionality factor

This commit is contained in:
Abdullah Tahiri
2018-06-15 16:12:43 +02:00
committed by wmayer
parent 831e455e50
commit 7270446ff9
2 changed files with 5 additions and 3 deletions

View File

@@ -97,8 +97,9 @@ int Constraint::findParamInPvec(double *param)
}
// Equal
ConstraintEqual::ConstraintEqual(double *p1, double *p2)
ConstraintEqual::ConstraintEqual(double *p1, double *p2, double p1p2ratio)
{
ratio = p1p2ratio;
pvec.push_back(p1);
pvec.push_back(p2);
origpvec = pvec;
@@ -117,7 +118,7 @@ void ConstraintEqual::rescale(double coef)
double ConstraintEqual::error()
{
return scale * (*param1() - *param2());
return scale * (*param1() - ratio *(*param2()));
}
double ConstraintEqual::grad(double *param)

View File

@@ -131,10 +131,11 @@ namespace GCS
class ConstraintEqual : public Constraint
{
private:
double ratio;
inline double* param1() { return pvec[0]; }
inline double* param2() { return pvec[1]; }
public:
ConstraintEqual(double *p1, double *p2);
ConstraintEqual(double *p1, double *p2, double p1p2ratio=1.0);
virtual ConstraintType getTypeId();
virtual void rescale(double coef=1.);
virtual double error();