コード例 #1
0
        private GreenTensor CalculateAsymGreenTensorAtoA()
        {
            _plan.SetOnlyAsym();
            var trcAsym = TranceiverUtils.CreateAnomalyToAnomaly(Model.Anomaly);

            MemoryUtils.PrintMemoryReport("Before scalars ASYM", Logger, MemoryProvider);
            var scalarsAsym = CalculateScalars(_plan, trcAsym.ToArray());

            MemoryUtils.PrintMemoryReport("After scalars ASYM", Logger, MemoryProvider);

            using (Profiler?.StartAuto(ProfilerEvent.GreenTensorAtoA))
            {
                GreenTensor tensor;

                using (Profiler?.StartAuto(ProfilerEvent.GreenTensorAtoACalc))
                {
                    MemoryUtils.PrintMemoryReport("Before tensors ASYM", Logger, MemoryProvider);
                    tensor = _tensorCalc.CalculateAsymAtoA(scalarsAsym, MemoryLayoutOrder.AlongVertical, _mirroringX);
                    MemoryUtils.PrintMemoryReport("after tensor ASYM", Logger, MemoryProvider);
                    scalarsAsym.Dispose();
                    MemoryUtils.PrintMemoryReport("after SCAl Dispose ASYM", Logger, MemoryProvider);
                }

                PopulateForFft(tensor, MemoryLayoutOrder.AlongVertical, _totalNxLength);
                if (_mirroringX)
                {
                    AddMinusToXz(tensor);
                }

                using (Profiler?.StartAuto(ProfilerEvent.GreenTensorAtoAFft))
                {
                    PerformFftAsym(tensor, MemoryLayoutOrder.AlongVertical);
                }

                return(tensor);
            }
        }