public MessageR oplus(NodeFunction sender, NodeVariable x, FunctionEvaluator fe, LinkedList<MessageQ> messagelist) {



        HashMap<NodeVariable, MessageQ> modifierTable = new HashMap<NodeVariable, MessageQ>();

        Iterator<MessageQ> iterator = messagelist.iterator();

        while (iterator.hasNext()) {
            MessageQ messageQ = iterator.next();

            if (debug>=3) {
                    String dmethod = Thread.currentThread().getStackTrace()[1].getMethodName();
                    String dclass = Thread.currentThread().getStackTrace()[1].getClassName();
                    System.out.println("---------------------------------------");
                    System.out.println("[class: "+dclass+" method: " + dmethod+ "] " + "messageQ="+messageQ+ " with sender="+messageQ.getSender());
                    System.out.println("---------------------------------------");
            }



            modifierTable.put(messageQ.getSender(), messageQ);
        }

        if(debug>=3){
            String dmethod = Thread.currentThread().getStackTrace()[1].getMethodName();
            String dclass = Thread.currentThread().getStackTrace()[1].getClassName();
            System.out.println("[class: "+dclass+" method: "+dmethod + "] " + "modifier table size="+modifierTable.size());
            if (modifierTable.size()>=1){
                Iterator<NodeVariable> it = modifierTable.keySet().iterator();
                while (it.hasNext()) {
                    NodeVariable nodeVariable = it.next();
                    System.out.print(" Node:"+nodeVariable+" Value:"+modifierTable.get(nodeVariable));
                }

            }
            System.out.println("");
            System.out.println("---------------------------------------");

        }

        return this.computeR(sender, x, fe, modifierTable);

    }