Package cc.redberry.core.tensor.iterators

Examples of cc.redberry.core.tensor.iterators.TensorTreeIterator


    public Tensor transform(Tensor tensor, boolean tensorFirst) {
        //TODO review
        //Remembing parent
        Tensor parent = tensor.getParent();
        TensorWrapper wrapper = new TensorWrapper(tensor);
        TensorTreeIterator it = TensorTreeIteratorFactory.create(tensorFirst, wrapper);
        Tensor current, old;
        while (it.hasNext()) {
            old = current = it.next();
            for (Transformation transformation : transformations)
                if ((current = transformation.transform(current)) == null)
                    break;
            if (current == null)
                if (AbstractTensorWrapper.onInnerTensorIndicator.is(it))
                    it.set(TensorNumber.createZERO());
                else
                    it.remove();
            else if (old != current)
                it.set(current);
        }
        Tensor result = wrapper.getInnerTensor();
        result.setParent(parent);
        return result;
    }
View Full Code Here


public abstract class TensorTreeIndicator implements Indicator<Tensor> {
    //FIXME add iteration guide
    @Override
    public boolean is(Tensor tensor) {
        //TODO add iteration guide
        TensorTreeIterator iterator = new TensorLastTreeIterator(tensor);
        while (iterator.hasNext())
            if (_is(iterator.next()))
                return true;
        return false;
    }
View Full Code Here

            return ((Derivative) t).getDerivativeOrder() + 1;
        return 1;
    }

    public static boolean testParentConsistent(final Tensor tensor) {
        TensorTreeIterator iterator = new TensorLastTreeIterator(tensor);
        Tensor current;
        while (iterator.hasNext()) {
            current = iterator.next();
            for (Tensor t : current)
                if (t.getParent() != current)
                    return false;
        }
        return true;
View Full Code Here

     * @param target target tensor to find whether it contains one of the keys
     * @param keys simple tensors array
     * @return true if target tensor contains one of the keys and false if not
     */
    public static boolean contains(final Tensor target, final SimpleTensor... keys) {
        final TensorTreeIterator iterator = new TensorLastTreeIterator(target);
        Tensor c;
        SimpleTensor s;
        while (iterator.hasNext()) {
            c = iterator.next();
            if (!(c instanceof SimpleTensor))
                continue;
            s = (SimpleTensor) c;
            for (SimpleTensor k : keys)
                if (k.getName() == s.getName())
View Full Code Here

     * @param target target tensor
     * @return list of simple tensors, which are occurs in target tensor
     */
    public static Collection<SimpleTensor> getSimpleTensorContent(Tensor target) {
        final List<SimpleTensor> result = new LinkedList<>();
        final TensorTreeIterator iterator = new TensorLastTreeIterator(target);
        Tensor c;
        while (iterator.hasNext()) {
            c = iterator.next();
            if (c instanceof SimpleTensor)
                result.add((SimpleTensor) c);
        }
        return result;
    }
View Full Code Here

     * @return list of simple tensors, which are occurs in target tensor and
     * have different names.
     */
    public static Collection<SimpleTensor> getDiffSimpleTensorContent(Tensor target) {
        final Map<Integer, SimpleTensor> map = new HashMap<>();
        final TensorTreeIterator iterator = new TensorLastTreeIterator(target);
        Tensor c;
        while (iterator.hasNext()) {
            c = iterator.next();
            if (c instanceof SimpleTensor) {
                SimpleTensor st = (SimpleTensor) c;
                if (map.containsKey(st.getName()))
                    continue;
                map.put(st.getName(), st);
View Full Code Here

TOP

Related Classes of cc.redberry.core.tensor.iterators.TensorTreeIterator

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.