public void RemoveLidIndexPair(long lid)
        {
            long baseIndex = LIDtoIND[lid];

            LIDtoIND.Remove(lid);

            INDtoLID[(int)baseIndex + (int)EPhaseIndex.A] = 0;
            INDtoLID[(int)baseIndex + (int)EPhaseIndex.B] = 0;
            INDtoLID[(int)baseIndex + (int)EPhaseIndex.C] = 0;

            matrixIndexManager.RemoveIndex(baseIndex);
        }
        private long CreateLidIndexPair(long lid)
        {
            long index;

            if (matrixIndexManager.FindFreeIndex(out index))
            {
                INDtoLID.AddRange(new List <long>(3)
                {
                    lid, lid, lid
                });
            }
            else
            {
                INDtoLID[(int)index + (int)EPhaseIndex.A] = lid;
                INDtoLID[(int)index + (int)EPhaseIndex.B] = lid;
                INDtoLID[(int)index + (int)EPhaseIndex.C] = lid;
            }

            LIDtoIND.Add(lid, index);

            return(index);
        }