示例#1
0
        private void PadOpenShortMethod(ref Curve fileDUTPattern)
        {
            int countOfPoints = _fileOpenPattern.CountOfPoints;

            for (int i = 1; i <= countOfPoints; i++)
            {
                double[] openPatternPoints = _fileOpenPattern.GetPoints(i);

                Matrix
                    pad    = new Matrix(_filePadPattern.GetPoints(i)),
                    open   = new Matrix(openPatternPoints),
                    shortM = new Matrix(_fileShortPattern.GetPoints(i)),
                    DUT    = new Matrix(fileDUTPattern.GetPoints(i));

                Matrix
                    yPad   = pad.FromSToY,
                    yOpen  = open.FromSToY,
                    yShort = shortM.FromSToY,
                    yDUT   = DUT.FromSToY;

                Matrix
                    yRes = ((yDUT - yPad).Reverse - (yShort - yPad).Reverse).Reverse - ((yOpen - yPad).Reverse - (yShort - yPad).Reverse).Reverse,
                    res  = yRes.FromYToS;

                fileDUTPattern.ChangePoints(i, res.A.Re, res.A.Im, res.C.Re, res.C.Im, res.B.Re, res.B.Im, res.D.Re, res.D.Im);
            }
        }
示例#2
0
        private void L2LMethod(ref Curve fileDUTPattern)
        {
            int countOfPoints = _fileLinePattern.CountOfPoints;

            for (int i = 1; i <= countOfPoints; i++)
            {
                double[] linePatternPoints = _fileLinePattern.GetPoints(i);

                Matrix
                    line    = new Matrix(linePatternPoints),
                    twoLine = new Matrix(_fileTwoLinePattern.GetPoints(i)),
                    DUT     = new Matrix(fileDUTPattern.GetPoints(i));

                Matrix
                    aLine    = line.FromSToA,
                    aTwoLine = twoLine.FromSToA;

                Matrix
                    PP = aLine * aTwoLine.Reverse * aLine,
                    PR = PP.FromPPToPR,
                    PL = PP.FromPPToPL,
                    L  = PL.Reverse * aLine * PR.Reverse;

                Matrix
                    res = ((PL * L).Reverse * DUT.FromSToA * (L * PR).Reverse).FromAtoS;

                fileDUTPattern.ChangePoints(i, res.A.Re, res.A.Im, res.C.Re, res.C.Im, res.B.Re, res.B.Im, res.D.Re, res.D.Im);
            }
        }
示例#3
0
        private void OpenMethod(ref Curve fileDUTPattern)
        {
            int countOfPoints = _fileOpenPattern.CountOfPoints;

            for (int i = 1; i <= countOfPoints; i++)
            {
                double[] openPatternPoints = _fileOpenPattern.GetPoints(i);

                Matrix
                    open = new Matrix(openPatternPoints),
                    DUT  = new Matrix(fileDUTPattern.GetPoints(i));

                Matrix res = (DUT.FromSToY - open.FromSToY).FromYToS;

                fileDUTPattern.ChangePoints(i, res.A.Re, res.A.Im, res.C.Re, res.C.Im, res.B.Re, res.B.Im, res.D.Re, res.D.Im);
            }
        }
        private void PadOpenShortMethod(ref Curve fileDUTPattern)
        {
            int countOfPoints = _fileOpenPattern.CountOfPoints;
            for (int i = 1; i <= countOfPoints; i++)
            {
                double[] openPatternPoints = _fileOpenPattern.GetPoints(i);

                Matrix
                       pad = new Matrix(_filePadPattern.GetPoints(i)),
                       open = new Matrix(openPatternPoints),
                       shortM = new Matrix(_fileShortPattern.GetPoints(i)),
                       DUT = new Matrix(fileDUTPattern.GetPoints(i));

                Matrix
                    yPad = pad.FromSToY,
                    yOpen = open.FromSToY,
                    yShort = shortM.FromSToY,
                    yDUT = DUT.FromSToY;

                Matrix
                    yRes = ((yDUT - yPad).Reverse - (yShort - yPad).Reverse).Reverse - ((yOpen - yPad).Reverse - (yShort - yPad).Reverse).Reverse,
                    res = yRes.FromYToS;

                fileDUTPattern.ChangePoints(i, res.A.Re, res.A.Im, res.C.Re, res.C.Im, res.B.Re, res.B.Im, res.D.Re, res.D.Im);
            }
        }
        private void OpenMethod(ref Curve fileDUTPattern)
        {
            int countOfPoints = _fileOpenPattern.CountOfPoints;
            for (int i = 1; i <= countOfPoints; i++)
            {
                double[] openPatternPoints = _fileOpenPattern.GetPoints(i);

                Matrix
                       open = new Matrix(openPatternPoints),
                       DUT = new Matrix(fileDUTPattern.GetPoints(i));

                Matrix res = (DUT.FromSToY - open.FromSToY).FromYToS;

                fileDUTPattern.ChangePoints(i, res.A.Re, res.A.Im, res.C.Re, res.C.Im, res.B.Re, res.B.Im, res.D.Re, res.D.Im);
            }
        }
        private void L2LMethod(ref Curve fileDUTPattern)
        {
            int countOfPoints = _fileLinePattern.CountOfPoints;
            for (int i = 1; i <= countOfPoints; i++)
            {
                double[] linePatternPoints = _fileLinePattern.GetPoints(i);

                Matrix
                       line = new Matrix(linePatternPoints),
                       twoLine = new Matrix(_fileTwoLinePattern.GetPoints(i)),
                       DUT = new Matrix(fileDUTPattern.GetPoints(i));

                Matrix
                    aLine = line.FromSToA,
                    aTwoLine = twoLine.FromSToA;

                Matrix
                       PP = aLine * aTwoLine.Reverse * aLine,
                       PR = PP.FromPPToPR,
                       PL = PP.FromPPToPL,
                       L = PL.Reverse * aLine * PR.Reverse;

                Matrix
                    res = ((PL * L).Reverse * DUT.FromSToA * (L * PR).Reverse).FromAtoS;

                fileDUTPattern.ChangePoints(i, res.A.Re, res.A.Im, res.C.Re, res.C.Im, res.B.Re, res.B.Im, res.D.Re, res.D.Im);
            }
        }