@@ -75,6 +75,8 @@ public final class Activation extends NodeActivation<OrNode> {
75
75
public Candidate candidate ;
76
76
private long visitedState ;
77
77
78
+ private List <Activation > conflicts ;
79
+
78
80
79
81
public Activation (int id , Document doc , Key key ) {
80
82
super (id , doc , key );
@@ -355,7 +357,11 @@ public List<SynapseActivation> getFinalOutputActivations() {
355
357
356
358
357
359
public Collection <Activation > getConflicts () {
358
- ArrayList <Activation > conflicts = new ArrayList <>();
360
+ if (conflicts != null ) {
361
+ return conflicts ;
362
+ }
363
+
364
+ conflicts = new ArrayList <>();
359
365
for (SynapseActivation sa : neuronInputs ) {
360
366
if (sa .synapse .isNegative () && sa .synapse .key .isRecurrent ) {
361
367
sa .input .collectIncomingConflicts (conflicts );
@@ -366,7 +372,7 @@ public Collection<Activation> getConflicts() {
366
372
}
367
373
368
374
369
- private void collectIncomingConflicts (ArrayList <Activation > conflicts ) {
375
+ private void collectIncomingConflicts (List <Activation > conflicts ) {
370
376
if (getINeuron ().type != INeuron .Type .INHIBITORY ) {
371
377
conflicts .add (this );
372
378
} else {
@@ -379,7 +385,7 @@ private void collectIncomingConflicts(ArrayList<Activation> conflicts) {
379
385
}
380
386
381
387
382
- private void collectOutgoingConflicts (ArrayList <Activation > conflicts ) {
388
+ private void collectOutgoingConflicts (List <Activation > conflicts ) {
383
389
for (SynapseActivation sa : neuronOutputs ) {
384
390
if (sa .output .getINeuron ().type != INeuron .Type .INHIBITORY ) {
385
391
if (sa .synapse .isNegative () && sa .synapse .key .isRecurrent ) {
0 commit comments