Beispiel #1
0
        public IQpProblem Convert(IProfileMatchingProblem problem)
        {
            InternalConverter converter = SelectInternalBuilder(problem);

            return(new QpProblem.Builder()
                   .WithQMatrix(converter.AssembleQMatrix())
                   .WithCVector(converter.AssembleCVector())
                   .WithAMatrix(problem.A)
                   .WithBVector(problem.B)
                   .WithAEqualityMatrix(problem.Aeq)
                   .WithBEqualityVector(problem.Beq)
                   .Build());
        }
Beispiel #2
0
        private InternalConverter SelectInternalBuilder(IProfileMatchingProblem problem)
        {
            switch (this.metric)
            {
            case ProfileMatchingMetric.SumSquares:
                return(new SumSquaresConverter(problem));

            case ProfileMatchingMetric.CumulativeSumsquares:
                return(new CumulativeSumSquaresConverter(problem));

            default:
                throw new NotSupportedException("Fitting metric not supported.");
            }
        }
Beispiel #3
0
 public SumSquaresConverter(IProfileMatchingProblem problem)
     : base(problem)
 {
 }
Beispiel #4
0
            protected InternalConverter(IProfileMatchingProblem problem)
            {
                this.basisVectors = Matrix <double> .Build.DenseOfArray(problem.Vectors);

                this.targetVector = Vector <double> .Build.DenseOfArray(problem.Target);
            }