Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="indexers">List containing all of the indexes</param>
        /// <param name="indexpos"></param>
        /// <param name="currentIdx">Array containing the current indexes</param>
        /// <returns></returns>
        public static AType VectorIndexing(this AType input, List <AType> indexers, int indexpos, AType currentIdx, bool isAssign, bool isMemoryMapped)
        {
            if (currentIdx.Length == 0)
            {
                // A Null item found!, select all of the current items
                for (int i = 0; i < input.Length; i++)
                {
                    currentIdx.Add(AInteger.Create(i));
                }
            }

            // Create an array for the results
            AType result = AArray.Create(input.Type);

            // Iterate over the indexes
            foreach (AType index in currentIdx)
            {
                AType item =
                    index.IsArray ?
                    input.VectorIndexing(indexers, indexpos, index, isAssign, isMemoryMapped) :
                    input.SimpleIndex(indexers, indexpos, index, isAssign, isMemoryMapped);

                result.AddWithNoUpdate(item);
            }

            result.UpdateInfo();
            return(result);
        }
Exemple #2
0
        public static AType Indexing(this AType input, List <AType> indexers, int indexpos, bool isAssign, bool isMemoryMapped)
        {
            // Select the current indexer element
            AType currentIdx = indexers[indexpos];

            if (currentIdx.IsArray)
            {
                // The indexer element is an Array handle that way
                return(input.VectorIndexing(indexers, indexpos, currentIdx, isAssign, isMemoryMapped));
            }
            else
            {
                // The indexer element is a simple AType
                return(input.SimpleIndex(indexers, indexpos, currentIdx, isAssign, isMemoryMapped));
            }
        }