示例#1
0
        private Complex CalculateU1And5Special(CalcPsi calcPsi)
        {
            var c         = _container;
            var annFactor = 1 / (c.Eta[c.CorrBackgroundRc] * c.Eta[c.CorrBackgroundTr]);

            return(GetAnn() * annFactor * CalculateSpecial(1, 1, calcPsi));
        }
示例#2
0
        private Complex[] CalculateU2Special(CalcPsi calcPsi)
        {
            var result = new Complex[_currentLength];
            var ann    = GetAnn();
            var spec   = CalculateSpecial(1, -1, calcPsi);

            for (int i = 0; i < _currentLength; i++)
            {
                result[i] = ann[i] * spec[i];
            }

            return(result);
        }
示例#3
0
        private Complex[] CalculateU4Special(CalcPsi calcPsi)
        {
            var c = _container;

            var result = new Complex[_currentLength];
            var ann    = GetAnn();
            var spec   = CalculateSpecial(-1, -1, calcPsi);

            for (int i = 0; i < _currentLength; i++)
            {
                var annFactor = 1 / (c.Eta[c.CorrBackgroundRc, i]);
                result[i] = ann[i] * annFactor * spec[i];;
            }

            return(result);
        }
示例#4
0
        private Complex CalculateSpecial(double pSign, double psiSign, CalcPsi calcPsi)
        {
            var c = _container;

            int r = c.CorrBackgroundRc;
            int s = c.CorrBackgroundTr;
            int t = System.Math.Min(r, s);
            int b = System.Math.Max(r, s);

            var z = GetZ(c);

            var pAddendum = CalculateT(z, c.Eta, r, s);
            var qAddendum = CalculateR(z, c.Eta, r, s);
            var psi       = calcPsi(c.Eta, c.P, c.Q, z, r, s);

            return(pSign * c.P[t] * pAddendum + c.Q[b] * qAddendum + psiSign * psi);
        }
示例#5
0
        private Complex[] CalculateSpecial(double pSign, double psiSign, CalcPsi calcPsi)
        {
            var c  = _container;
            var ne = GetNativeEnvelop(c);

            var pAddendum = _calcT; //UnsafeNativeMethods.CalculateT(ne, c.Eta);
            var qAddendum = _calcR; // UnsafeNativeMethods.CalculateR(ne, c.Eta);
            var psi       = calcPsi(c.Eta, c.P, c.Q, ne);

            var result = new Complex[_currentLength];

            for (int i = 0; i < _currentLength; i++)
            {
                result[i] = pSign * c.P[ne.t, i] * pAddendum[i] + c.Q[ne.b, i] * qAddendum[i] + psiSign * psi[i];
            }

            return(result);
        }
        private Complex CalculateU1And5Special(CalcPsi calcPsi)
        {
            var c = _container;
            int r = c.CorrBackgroundRc;
            int s = c.CorrBackgroundTr;
            int t = System.Math.Min(r, s);
            int b = System.Math.Max(r, s);

            var ann = GetAnn();

            var z1    = (double)c.Tr.StartingDepth;
            var z2    = (double)c.Tr.GetEndDepth();
            var zWork = (double)c.Rc.GetWorkingDepth();
            var eta   = c.Eta;

            var pAddendum = CalculateT(zWork, z1, z2, eta, r, s);
            var qAddendum = CalculateR(zWork, z1, z2, eta, r, s);
            var psi       = calcPsi(eta, c.P, c.Q, zWork, z1, z2, r, s);

            return((ann / eta[s]) * (c.P[t] * pAddendum + c.Q[b] * qAddendum + psi));
        }
示例#7
0
        private Complex CalculateU4Special(CalcPsi calcPsi)
        {
            var annFactor = 1 / (_container.Eta[_container.CorrBackgroundRc]);

            return(GetAnn() * annFactor * CalculateSpecial(-1, -1, calcPsi));
        }
示例#8
0
        private Complex CalculateU2Special(CalcPsi calcPsi)
        {
            var annFactor = 1;

            return(GetAnn() * annFactor * CalculateSpecial(1, -1, calcPsi));
        }