diff --git a/java/source/infodynamics/measures/continuous/symbolic/TransferEntropyCalculatorSymbolic.java b/java/source/infodynamics/measures/continuous/symbolic/TransferEntropyCalculatorSymbolic.java index 69e93ff..688b970 100755 --- a/java/source/infodynamics/measures/continuous/symbolic/TransferEntropyCalculatorSymbolic.java +++ b/java/source/infodynamics/measures/continuous/symbolic/TransferEntropyCalculatorSymbolic.java @@ -1,8 +1,7 @@ package infodynamics.measures.continuous.symbolic; -import infodynamics.measures.continuous.TransferEntropyCalculator; import infodynamics.measures.continuous.TransferEntropyCommon; -import infodynamics.measures.discrete.ApparentTransferEntropyCalculator; +import infodynamics.measures.discrete.TransferEntropyCalculator; import infodynamics.utils.FirstIndexComparatorDouble; import infodynamics.utils.MathsUtils; import infodynamics.utils.MatrixUtils; @@ -22,10 +21,10 @@ import java.util.Vector; */ public class TransferEntropyCalculatorSymbolic extends TransferEntropyCommon - implements TransferEntropyCalculator { + implements infodynamics.measures.continuous.TransferEntropyCalculator { // The calculator used to do the grunt work - protected ApparentTransferEntropyCalculator teCalc; + protected TransferEntropyCalculator teCalc; protected int maxEmbeddingLength; // = Max(l,k) // l will default to the value of k unless l gets explicitly set @@ -126,7 +125,7 @@ public class TransferEntropyCalculatorSymbolic // The discrete calculator only uses a history of 1 here - k is built into // the permutations int base = Math.max(destPermutationIds.length, sourcePermutationIds.length); - teCalc = ApparentTransferEntropyCalculator.newInstance(base, 1); + teCalc = TransferEntropyCalculator.newInstance(base, 1); teCalc.initialise(); } diff --git a/java/source/infodynamics/measures/discrete/ApparentTransferEntropyCalculator.java b/java/source/infodynamics/measures/discrete/ApparentTransferEntropyCalculator.java index 3af702c..1c5b851 100755 --- a/java/source/infodynamics/measures/discrete/ApparentTransferEntropyCalculator.java +++ b/java/source/infodynamics/measures/discrete/ApparentTransferEntropyCalculator.java @@ -58,7 +58,7 @@ import infodynamics.utils.RandomGenerator; * www * */ -public class ApparentTransferEntropyCalculator extends ContextOfPastMeasureCalculator +public class TransferEntropyCalculator extends ContextOfPastMeasureCalculator implements ChannelCalculator, AnalyticNullDistributionComputer { protected int[][][] sourceNextPastCount = null; // count for (source[n],dest[n+1],dest[n]^k) tuples @@ -107,9 +107,9 @@ public class ApparentTransferEntropyCalculator extends ContextOfPastMeasureCalcu * * @return */ - public static ApparentTransferEntropyCalculator newInstance(int base, int destHistoryEmbedLength) { + public static TransferEntropyCalculator newInstance(int base, int destHistoryEmbedLength) { - return new ApparentTransferEntropyCalculator(base, destHistoryEmbedLength); + return new TransferEntropyCalculator(base, destHistoryEmbedLength); // Old code for an attempted optimisation: /* @@ -129,7 +129,7 @@ public class ApparentTransferEntropyCalculator extends ContextOfPastMeasureCalcu * @param destHistoryEmbedLength embedded history length of the destination to condition on - * this is k in Schreiber's notation. */ - public ApparentTransferEntropyCalculator(int base, int destHistoryEmbedLength) { + public TransferEntropyCalculator(int base, int destHistoryEmbedLength) { super(base, destHistoryEmbedLength); base_power_l = MathsUtils.power(base, sourceHistoryEmbedLength); @@ -160,7 +160,7 @@ public class ApparentTransferEntropyCalculator extends ContextOfPastMeasureCalcu * @param sourceHistoryEmbeddingLength embedded history length of the source to include - * this is l in Schreiber's notation. */ - public ApparentTransferEntropyCalculator(int base, int destHistoryEmbedLength, int sourceHistoryEmbeddingLength) { + public TransferEntropyCalculator(int base, int destHistoryEmbedLength, int sourceHistoryEmbeddingLength) { super(base, destHistoryEmbedLength); this.sourceHistoryEmbedLength = sourceHistoryEmbeddingLength; @@ -968,7 +968,7 @@ public class ApparentTransferEntropyCalculator extends ContextOfPastMeasureCalcu // of resources here, but there's not much other choice. A better solution // will come when we switch to an underlying conditional MI calculator, with separate // bases for each variable, and just use its computeSignificance() method. - ApparentTransferEntropyCalculator ate2 = new ApparentTransferEntropyCalculator(base_power_l, k, 1); + TransferEntropyCalculator ate2 = new TransferEntropyCalculator(base_power_l, k, 1); ate2.initialise(); ate2.observations = observations; ate2.pastCount = pastCount; diff --git a/java/source/infodynamics/measures/discrete/SeparableInfoCalculatorByAddition.java b/java/source/infodynamics/measures/discrete/SeparableInfoCalculatorByAddition.java index d4ad732..6924a51 100755 --- a/java/source/infodynamics/measures/discrete/SeparableInfoCalculatorByAddition.java +++ b/java/source/infodynamics/measures/discrete/SeparableInfoCalculatorByAddition.java @@ -5,7 +5,7 @@ import infodynamics.utils.MatrixUtils; public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { ActiveInformationCalculator aiCalc; - ApparentTransferEntropyCalculator[] ateCalcs; + TransferEntropyCalculator[] ateCalcs; private boolean localStatsValid = true; @@ -26,9 +26,9 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { * */ private void createAppTeCalculators() { - ateCalcs = new ApparentTransferEntropyCalculator[numSources]; + ateCalcs = new TransferEntropyCalculator[numSources]; for (int i = 0; i < numSources; i++) { - ateCalcs[i] = ApparentTransferEntropyCalculator.newInstance(base, k); + ateCalcs[i] = TransferEntropyCalculator.newInstance(base, k); ateCalcs[i].setPeriodicBoundaryConditions(periodicBoundaryConditions); } } @@ -237,8 +237,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { localComponents[0] = local; } int[] cleanedOffsets = cleanOffsetOfDestFromSources(offsetOfDestFromSources); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); double[][] temp; for (int i = 0; i < numSources; i++) { @@ -273,8 +273,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { localComponents[0] = local; } int[][] cleanedOffsets = cleanOffsetOfDestFromSources(offsetOfDestFromSources); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); double[][][] temp; for (int i = 0; i < numSources; i++) { @@ -307,8 +307,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { // ApparentTransferEntropy object average = aiCalc.computeAverageLocal(states); int[] cleanedOffsets = cleanOffsetOfDestFromSources(sourceOffsets); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); for (int i = 0; i < numSources; i++) { average += ateCalc.computeAverageLocal(states, cleanedOffsets[i]); @@ -324,8 +324,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { // ApparentTransferEntropy object average = aiCalc.computeAverageLocal(states); int[][] cleanedOffsets = cleanOffsetOfDestFromSources(sourceOffsets); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); for (int i = 0; i < numSources; i++) { average += ateCalc.computeAverageLocal(states, @@ -346,8 +346,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { localComponents[0] = local; } int[] cleanedOffsets = cleanAbsoluteSources(sourcesAbsolute, destCol); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); double[] temp; for (int i = 0; i < numSources; i++) { @@ -382,8 +382,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { localComponents[0] = local; } int[][] cleanedSourcesAbsolute = cleanAbsoluteSources(sourcesAbsolute, destAgentRow, destAgentColumn); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); double[] temp; for (int i = 0; i < numSources; i++) { @@ -415,8 +415,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { // ApparentTransferEntropy object average = aiCalc.computeAverageLocal(states, destCol); int[] cleanedSourcesAbsolute = cleanAbsoluteSources(sourcesAbsolute, destCol); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); for (int i = 0; i < numSources; i++) { average += ateCalc.computeAverageLocal(states, destCol, cleanedSourcesAbsolute[i]); @@ -433,8 +433,8 @@ public class SeparableInfoCalculatorByAddition extends SeparableInfoCalculator { // ApparentTransferEntropy object average = aiCalc.computeAverageLocal(states); int[][] cleanedSourcesAbsolute = cleanAbsoluteSources(sourcesAbsolute, destAgentRow, destAgentColumn); - ApparentTransferEntropyCalculator ateCalc = - ApparentTransferEntropyCalculator.newInstance(base, k); + TransferEntropyCalculator ateCalc = + TransferEntropyCalculator.newInstance(base, k); ateCalc.setPeriodicBoundaryConditions(periodicBoundaryConditions); for (int i = 0; i < numSources; i++) { average += ateCalc.computeAverageLocal(states,