Renaming ApparentTransferEntropyCalculator to TransferEntropyCalculator for simplicity -- step 1 of 2

This commit is contained in:
joseph.lizier 2014-08-05 04:58:32 +00:00
parent ab916e2253
commit 7e27c0d4ed
3 changed files with 29 additions and 30 deletions

View File

@ -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();
}

View File

@ -58,7 +58,7 @@ import infodynamics.utils.RandomGenerator;
* <a href="http://lizier.me/joseph/">www</a>
*
*/
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;

View File

@ -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,