protected DoubleMatrix1D rDual(DoubleMatrix1D gradF0X, DoubleMatrix1D L, DoubleMatrix1D V) {
		//m1 = GradFiX[T].L + gradF0X
		DoubleMatrix1D m1 = F1.make(getDim());
		for(int i=0; i<getDim(); i++){
			double m = 0;
			m += - L.getQuick(i);
			m += L.getQuick(getDim() + i);
			m1.setQuick(i, m + gradF0X.get(i));
		}
		if(getMeq()==0){
			return m1;
		}
		return ColtUtils.zMultTranspose(getA(), V, m1, 1.);
	}
protected DoubleMatrix1D rDual ( DoubleMatrix1D gradF0X , DoubleMatrix1D L , DoubleMatrix1D V ) { DoubleMatrix1D m1 = F1 . make ( getDim ( ) ) ; for ( int i = 0 ; i < getDim ( ) ; i ++ ) { double m = 0 ; m += - L . getQuick ( i ) ; m += L . getQuick ( getDim ( ) + i ) ; m1 . setQuick ( i , m + gradF0X . get ( i ) ) ; } if ( getMeq ( ) == 0 ) { return m1 ; } return ColtUtils . zMultTranspose ( getA ( ) , V , m1 , 1. ) ; }
@see "Convex Optimization, p. 610"