Package cc.redberry.core.utils

Examples of cc.redberry.core.utils.IntArrayList


        return IndicesFactory.create(list.toArray());
    }

    @Override
    public int[] getNamesOfDummies() {
        IntArrayList list = new IntArrayList();
        int u, l;
        int iLower = firstLower, iUpper = 0;
        for (; iUpper < firstLower && iLower < data.length; ++iLower, ++iUpper) {
            u = data[iUpper] & 0x7FFFFFFF; //taking name with type
            l = data[iLower];
            if (u < l)
                --iLower;
            else if (l < u)
                --iUpper;
            else
                list.add(l);
        }
        return list.toArray();
    }
View Full Code Here


     */
    public static int[] parse(String expression) {
        if (expression.isEmpty())
            return new int[0];

        IntArrayList indices = new IntArrayList();
        int level = 0;
        int state = 0;
        final char[] expressionChars = expression.toCharArray();
        char c;
        int beginIndex = 0, endIndex = 0;
        for (; endIndex < expressionChars.length; ++endIndex) {
            c = expressionChars[endIndex];
            if (c == '{')
                ++level;
            else if (c == '}')
                --level;
            else if (c == '_' && level == 0) {
                if (endIndex != 0)
                    parse(expression.substring(beginIndex + 1, endIndex), indices, state);
                state = 0;
                beginIndex = endIndex;
            } else if (c == '^') {
                if (level != 0)
                    throw new BracketsError();
                if (endIndex != 0)
                    parse(expression.substring(beginIndex + 1, endIndex), indices, state);
                state = 0x80000000;
                beginIndex = endIndex;
            }
        }
        if (level != 0)
            throw new BracketsError();
        if (beginIndex != endIndex)
            parse(expression.substring(beginIndex + 1, endIndex), indices, state);
        return indices.toArray();
    }
View Full Code Here

            forbidden[++i] = f;
        System.arraycopy(upperLower, 0, forbidden, dummyIndices.size(), upperLower.length);


        IndexGeneratorImpl generator = new IndexGeneratorImpl(forbidden);
        IntArrayList from = new IntArrayList(), to = new IntArrayList();
        int fromIndex;
        for (i = upperLower.length - 1; i >= 0; --i) {
            fromIndex = upperLower[i];
            if (dummyIndices.contains(fromIndex)) {
                from.add(fromIndex);
                to.add(generator.generate(IndicesUtils.getType(fromIndex)));
            }
        }

        int[] _from = from.toArray(), _to = to.toArray();
        ArraysUtils.quickSort(_from, _to);

        IITransformer transformer = createTransformer(node, indicator);
        if (transformer != null)
            transformer.apply(new IndexMapper(_from, _to), new IGWrapper(generator), upper, lower);
View Full Code Here

        if (diffIds == null) {
            List<Symmetry> list = symmetries.getBasisSymmetries();
            diffIds = new short[symmetries.dimension()];
            Arrays.fill(diffIds, (short) -1);
            short number = 0;
            IntArrayList removed = new IntArrayList(2);
            int i0, i1;
            for (Symmetry symmetry : list)
                for (i0 = diffIds.length - 1; i0 >= 0; --i0)
                    if ((i1 = symmetry.newIndexOf(i0)) != i0)
                        if (diffIds[i0] == -1 && diffIds[i1] == -1)
                            diffIds[i0] = diffIds[i1] = number++;
                        else if (diffIds[i0] == -1)
                            diffIds[i0] = diffIds[i1];
                        else if (diffIds[i1] == -1)
                            diffIds[i1] = diffIds[i0];
                        else if (diffIds[i1] != diffIds[i0]) {
                            int n = diffIds[i1];
                            for (int k = 0; k < diffIds.length; ++k)
                                if (diffIds[k] == n)
                                    diffIds[k] = diffIds[i0];
                            removed.add(n);
                        }
            for (i1 = 0; i1 < diffIds.length; ++i1)
                if (diffIds[i1] == -1)
                    diffIds[i1] = number++;

            removed.sort();
            for (i0 = diffIds.length - 1; i0 >= 0; --i0) {
                diffIds[i0] += ArraysUtils.binarySearch(removed, diffIds[i0]) + 1;
            }
        }
        return diffIds;
View Full Code Here

                    pntf.content[i] = newArgNode;
                    newArgNode.parent = pntf;

                    SimpleIndices oldArgIndices = pntf.argumentsIndices[i];
                    if (oldArgIndices != null) {
                        IntArrayList newArgIndices = new IntArrayList(oldArgIndices.getAllIndices().copy());
                        Indices newIndices = newArgNode.getIndices();
                        for (byte j = 0; j < TYPES_COUNT; ++j) {
                            if (oldArgIndices.size(IndexType.getType(j)) < newIndices.size(IndexType.getType(j))) {
                                if (oldArgIndices.size(IndexType.getType(j)) != 0)
                                    throw new IllegalArgumentException("Error in field arg indices.");
                                newArgIndices.addAll(newIndices.getOfType(IndexType.getType(j)).getAllIndices());
                            }
                        }
                        pntf.argumentsIndices[i] = IndicesFactory.createSimple(null, newArgIndices.toArray());
                    }
                }
        }
        if (pn.tokenType == TokenType.Power || pn.tokenType == TokenType.ScalarFunction) {
            for (int i = 0; i < pn.content.length; ++i)
View Full Code Here

public final class IndicesBuilder {

    private final IntArrayList data;

    public IndicesBuilder() {
        data = new IntArrayList();
    }
View Full Code Here

    private IndicesBuilder(IntArrayList data) {
        this.data = data;
    }

    public IndicesBuilder(int capacity) {
        data = new IntArrayList(capacity);
    }
View Full Code Here

     * Construct builder with specified initial capacity.
     *
     * @param initialCapacity initial capacity
     */
    public SimpleIndicesBuilder(int initialCapacity) {
        data = new IntArrayList(initialCapacity);
        symmetries = new ArrayList<>(initialCapacity);
    }
View Full Code Here

        return create(dataInv, symmetries);
    }

    @Override
    public SimpleIndices getFree() {
        IntArrayList dataList = new IntArrayList();
        boolean y;
        for (int i = 0; i < data.length; i++) {
            y = true;
            for (int j = 0; j < data.length; j++)
                if (i != j && (data[i] ^ data[j]) == 0x80000000) {
                    y = false;
                    break;
                }
            if (y)
                dataList.add(data[i]);
        }
        //todo review
        return UnsafeIndicesFactory.createIsolatedUnsafeWithoutSort(null, dataList.toArray());
    }
View Full Code Here

        return UnsafeIndicesFactory.createIsolatedUnsafeWithoutSort(null, dataList.toArray());
    }

    @Override
    public int[] getNamesOfDummies() {
        IntArrayList dataList = new IntArrayList();
        for (int i = 0; i < data.length; i++)
            for (int j = i + 1; j < data.length; ++j) {
                if ((data[i] ^ data[j]) == 0x80000000) {
                    dataList.add(data[i] & 0x7FFFFFFF);
                    break;
                }
            }
        return dataList.toArray();
    }
View Full Code Here

TOP

Related Classes of cc.redberry.core.utils.IntArrayList

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.