Skip to content

Commit d4ae6a3

Browse files
author
Lukas Molzberger
committed
cache conflicts
1 parent 36961bd commit d4ae6a3

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/main/java/org/aika/neuron/activation/Activation.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public final class Activation extends NodeActivation<OrNode> {
7575
public Candidate candidate;
7676
private long visitedState;
7777

78+
private List<Activation> conflicts;
79+
7880

7981
public Activation(int id, Document doc, Key key) {
8082
super(id, doc, key);
@@ -355,7 +357,11 @@ public List<SynapseActivation> getFinalOutputActivations() {
355357

356358

357359
public Collection<Activation> getConflicts() {
358-
ArrayList<Activation> conflicts = new ArrayList<>();
360+
if(conflicts != null) {
361+
return conflicts;
362+
}
363+
364+
conflicts = new ArrayList<>();
359365
for(SynapseActivation sa: neuronInputs) {
360366
if (sa.synapse.isNegative() && sa.synapse.key.isRecurrent) {
361367
sa.input.collectIncomingConflicts(conflicts);
@@ -366,7 +372,7 @@ public Collection<Activation> getConflicts() {
366372
}
367373

368374

369-
private void collectIncomingConflicts(ArrayList<Activation> conflicts) {
375+
private void collectIncomingConflicts(List<Activation> conflicts) {
370376
if (getINeuron().type != INeuron.Type.INHIBITORY) {
371377
conflicts.add(this);
372378
} else {
@@ -379,7 +385,7 @@ private void collectIncomingConflicts(ArrayList<Activation> conflicts) {
379385
}
380386

381387

382-
private void collectOutgoingConflicts(ArrayList<Activation> conflicts) {
388+
private void collectOutgoingConflicts(List<Activation> conflicts) {
383389
for(SynapseActivation sa: neuronOutputs) {
384390
if (sa.output.getINeuron().type != INeuron.Type.INHIBITORY) {
385391
if (sa.synapse.isNegative() && sa.synapse.key.isRecurrent) {

0 commit comments

Comments
 (0)