Class LagrangeMultipliersNaiveKraus

java.lang.Object
com.polytechnik.kgo.LagrangeMultipliersNaiveKraus

public class LagrangeMultipliersNaiveKraus extends Object
A class to handle Lagrange multipliers for Kraus operators, a direct sum of an arbitray nS vectors \( b_{s,jk} \). Does not converge well.
  • Field Details

  • Constructor Details

  • Method Details

    • getLagrangeMultipliers

      public static LagrangeMultipliersNaiveKraus getLagrangeMultipliers(int nS, int nC, int nX, double[] SK, double[] b)
    • getLambdaAsMatrix

      static double[] getLambdaAsMatrix(int nC, double[] vecLambda)
      Unvectorize lambda.
    • getNuAsMatrix

      private static double[] getNuAsMatrix(int nS, double[] vecNu)
      Unvectorize nu.
    • getVecFromLM

      private static double[] getVecFromLM(double[] b, int nS, int nC, int nX, double[] nu, double[] lambda)
      For unit test.
    • getBBmatrCalculatedDirectly

      private static double[] getBBmatrCalculatedDirectly(double[] b, int nS, int nC, int nX)
      For unit test.
    • testBasic

      static void testBasic(int nS, int nC, int nX, Random r, double eps, int testNum)
      One solution test.
    • runMultiTest

      static void runMultiTest(String name, int nTest, Random r, double eps)
    • main

      public static void main(String[] args)
      A unit test.