Package cc.redberry.core.tensor

Examples of cc.redberry.core.tensor.SimpleTensor


    public static Tensor applyIndexMapping(Tensor tensor, IndexMapper mapper) {
        TreeTraverseIterator iterator = new TreeTraverseIterator(tensor, TraverseGuide.EXCEPT_FUNCTIONS_AND_FIELDS);
        TraverseState state;
        SimpleIndices oldIndices, newIndices;
        SimpleTensor simpleTensor;
        while ((state = iterator.next()) != null) {
            if (state == TraverseState.Leaving)
                continue;
            if (!(iterator.current() instanceof SimpleTensor))
                continue;
            simpleTensor = (SimpleTensor) iterator.current();
            oldIndices = simpleTensor.getIndices();
            newIndices = oldIndices.applyIndexMapping(mapper);
            if (oldIndices != newIndices)
                if (simpleTensor instanceof TensorField)
                    iterator.set(Tensors.setIndicesToField((TensorField) simpleTensor, newIndices));
                else
View Full Code Here


            for (Tensor t : tf)
                content[i++] = tensor2AST(t);
            return new ParseTokenTensorField(tf.getIndices(), tf.getStringName(), content, tf.getArgIndices());
        }
        if (tensor instanceof SimpleTensor) {
            SimpleTensor st = (SimpleTensor) tensor;
            return new ParseTokenSimpleTensor(st.getIndices(), st.getStringName());
        }
        if (tensor instanceof Complex)
            return new ParseTokenNumber((Complex) tensor);

        ParseToken[] content = new ParseToken[tensor.size()];
View Full Code Here

        this.prefix = prefix;
    }

    @Override
    public SimpleTensor take() {
        SimpleTensor st;
        do {
            st = Tensors.simpleTensor(prefix + (counter++), IndicesFactory.EMPTY_SIMPLE_INDICES);
        } while (forbiddenNames.contains(st.getName()));
        return st;
    }
View Full Code Here

            ind = indicesProvider.next(nd);
            if (ind == null) {
                descriptors.remove(descriptorIndex);
                continue;
            }
            product.add(new SimpleTensor(nd.getId(), ind));
        }
        return product;
    }
View Full Code Here

                return null;
            if (resultProducts.size() == 1)
                return resultProducts.get(0);
            return new Sum(resultProducts);
        } else if (target.getClass() == SimpleTensor.class) {
            SimpleTensor sp = (SimpleTensor) target;
            if (sp.getName() != var.getName())
                return null;
            if (sp.getIndices().size() == 0)
                return TensorNumber.createONE();
            Product kroneckers = new Product();
            Indices targetIndices = sp.getIndices();
            Indices varIndices = var.getIndices();
            for (int i = 0; i < sp.getIndices().size(); ++i)
                kroneckers.add(CC.createMetricOrKronecker(targetIndices.get(i), varIndices.get(i)));
            return kroneckers.equivalent();
        } else if (target.getClass() == TensorField.class) {
            TensorField field = (TensorField) target;
            Tensor[] args = field.getArgs();
View Full Code Here

            int indexCollected, indexToCollect, rawState = ((entry.getValue().getStates() & 1) ^ 1) << 31;
            boolean diffStatesInit = entry.getValue().diffStatesInitialized();
            indexCollected = rawState | entry.getValue().getIndexName();
            indexToCollect = (diffStatesInit ? 0x80000000 : 0) ^ (rawState | entry.getKey());

            SimpleTensor mkCollected;
            SimpleTensor mkToCollect;

            if (indexToCollect == indexCollected)
                continue;
            else if (uncontractedIndicesToCollect.contains(getNameWithType(indexToCollect))
                    && uncontractedIndicesCollected.contains(getNameWithType(indexCollected)))
View Full Code Here

//            name[i] = (char) (0x41 + (int) (Math.random() * namespaceSize));
//        NameDescriptor descriptor = new NameDescriptor(String.valueOf(name), new IndicesTypeStructure(EmptyIndices.INSTANCE));
//        int tensorName = CC.getNameManager().mapNameDescriptor(descriptor);
//       
       
        return new SimpleTensor(tensorNames[random.nextInt(tensorNames.length)], EmptyIndices.INSTANCE);
    }
View Full Code Here

    private void checkConsistency() {
        int i;
        for (i = 0; i < actualInput; ++i) {
            if (!(inputValues[i].get(0) instanceof SimpleTensor))
                throw new IllegalArgumentException();
            SimpleTensor st = (SimpleTensor) inputValues[i].get(0);
            NameDescriptor nd = CC.getNameDescriptor(st.getName());
            if (!nd.getName(null).equals(getStringInputName(i)))
                throw new IllegalArgumentException();
        }
        for (; i < INPUT_VALUES_GENERAL_COUNT; ++i)
            if (inputValues[i] != null)
View Full Code Here

        this.prefix = prefix;
    }

    @Override
    public SimpleTensor take() {
        SimpleTensor st;
        do {
            st = Tensors.simpleTensor(prefix + (counter++), IndicesFactory.EMPTY_SIMPLE_INDICES);
        } while (forbiddenNames.contains(st.getName()));
        return st;
    }
View Full Code Here

            for (Tensor t : tf)
                content[i++] = tensor2AST(t);
            return new ParseTokenTensorField(tf.getIndices(), tf.getStringName(), content, tf.getArgIndices());
        }
        if (tensor instanceof SimpleTensor) {
            SimpleTensor st = (SimpleTensor) tensor;
            return new ParseTokenSimpleTensor(st.getIndices(), st.getStringName());
        }
        if (tensor instanceof Complex)
            return new ParseTokenNumber((Complex) tensor);

        ParseToken[] content = new ParseToken[tensor.size()];
View Full Code Here

TOP

Related Classes of cc.redberry.core.tensor.SimpleTensor

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.