Package util.objects

Examples of util.objects.IntCircularQueue


    }

    @Override
    public void flush() {
        int aid;
        IntCircularQueue evtset;
        if (lastProp != null) {
            aid = p2i.get(lastProp.getId());
            if (lastProp.reactToFineEvent()) {
                evtset = eventsets[aid];
                while (evtset.size() > 0) {
                    int v = evtset.pollFirst();
                    eventmasks[aid][v] = 0;
                }
                evtset.clear();
                lastProp.flushPendingEvt();
            }
            scheduled[aid] = 0;
        }
        for (int i = nextNotEmpty(0); i > -1; i = nextNotEmpty(i + 1)) {
            while (!pro_queue[i].isEmpty()) {
                lastProp = pro_queue[i].pollFirst();
                // revision of the variable
                aid = p2i.get(lastProp.getId());
                if (lastProp.reactToFineEvent()) {
                    evtset = eventsets[aid];
                    while (evtset.size() > 0) {
                        int v = evtset.pollFirst();
                        eventmasks[aid][v] = 0;
                    }
                    evtset.clear();
                    lastProp.flushPendingEvt();
                }
                scheduled[aid] = 0;
            }
            notEmpty = notEmpty & ~(1 << i);
View Full Code Here


        int pid = propagator.getId();
        int aid = p2i.get(pid);
            if (aid > -1) {
                assert aid > -1 : "try to desactivate an unknown constraint";
                // we don't remove the element from its master to avoid costly operations
                IntCircularQueue evtset = eventsets[aid];
                while (evtset.size() > 0) {
                    int v = evtset.pollFirst();
                    eventmasks[aid][v] = 0;
                }
                evtset.clear();
                propagator.flushPendingEvt();
            }
        }
    }
View Full Code Here

        eventmasks = new int[nsize][];
        System.arraycopy(_eventmasks, 0, eventmasks, 0, osize);
        for (int i = osize; i < nsize; i++) {
            if (propagators[i].reactToFineEvent()) {
                int nbv = propagators[i].getNbVars();
                eventsets[i] = new IntCircularQueue(nbv);
                eventmasks[i] = new int[nbv];
            }
        }
    }
View Full Code Here

            scheduled = new short[nsize];
            System.arraycopy(_scheduled, 0, scheduled, 0, nsize);


            // 3. remove eventsets
            IntCircularQueue estm = eventsets[idtm];
            assert !toDelete.reactToFineEvent() || eventsets[idtd].isEmpty() : "try to delete a propagator which has events to propagate (fine)";
            IntCircularQueue[] _eventsets = eventsets;
            eventsets = new IntCircularQueue[nsize];
            System.arraycopy(_eventsets, 0, eventsets, 0, nsize);
View Full Code Here

        event_f = new IntCircularQueue[nbProp];
        eventmasks = new int[nbProp][];
        for (int i = 0; i < nbProp; i++) {
            if (propagators[i].reactToFineEvent()) {
                int nbv = propagators[i].getNbVars();
                event_f[i] = new IntCircularQueue(nbv);
                eventmasks[i] = new int[nbv];
            }
        }
        event_c = new PropagatorEventType[nbProp];
        Arrays.fill(event_c, PropagatorEventType.VOID);
View Full Code Here

        // revision of the variable
        int aid = p2i.get(lastProp.getId());
        //assert schedule_f[aid] : "try to propagate an unscheduled propagator";
        schedule_f[aid] = false;
        if (lastProp.reactToFineEvent()) {
            IntCircularQueue evtset = event_f[aid];
            while (!evtset.isEmpty()) {
                int v = evtset.pollFirst();
                assert lastProp.isActive() : "propagator is not active:" + lastProp;
                if (Configuration.PRINT_PROPAGATION) {
                    Trace.printPropagation(lastProp.getVar(v), lastProp);
                }
                // clear event
View Full Code Here

    }

    private void flushFine() {
        int aid = p2i.get(lastProp.getId());
        if (lastProp.reactToFineEvent()) {
            IntCircularQueue evtset = event_f[aid];
            while (!evtset.isEmpty()) {
                eventmasks[aid][evtset.pollLast()] = 0;
            }
            evtset.clear();
        }
        schedule_f[aid] = false;
    }
View Full Code Here

        IntCircularQueue[] _event_f = event_f;
        event_f = new IntCircularQueue[nsize];
        System.arraycopy(_event_f, 0, event_f, 0, osize);
        for (int i = osize; i < nsize; i++) {
            if (propagators[i].reactToFineEvent()) {
                event_f[i] = new IntCircularQueue(propagators[i].getNbVars());
            }
        }
    PropagatorEventType[] _event_c = event_c;
        event_c = new PropagatorEventType[nsize];
        System.arraycopy(_event_c, 0, event_c, 0, osize);
View Full Code Here

            boolean[] _schedule_c = schedule_c;
            schedule_c = new boolean[nsize];
            System.arraycopy(_schedule_c, 0, schedule_c, 0, nsize);

            // 4. remove event_f
            IntCircularQueue icqtm = event_f[idtm];
            assert !toDelete.reactToFineEvent() || event_f[idtd].isEmpty() : "try to delete a propagator which has events to propagate (fine)";
            IntCircularQueue[] _event_f = event_f;
            event_f = new IntCircularQueue[nsize];
            System.arraycopy(_event_f, 0, event_f, 0, nsize);
View Full Code Here

        eventsets = new IntCircularQueue[nbProp];
        eventmasks = new int[nbProp][];
        for (int i = 0; i < nbProp; i++) {
            int nbv = propagators[i].getNbVars();
            if (propagators[i].reactToFineEvent()) {
                eventsets[i] = new IntCircularQueue(nbv);
                eventmasks[i] = new int[nbv];
            }
        }
        notEmpty = 0;
        init = true;
View Full Code Here

TOP

Related Classes of util.objects.IntCircularQueue

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.