From d0a0fca40c0f38e85fb70e4bfc2becdcf2020645 Mon Sep 17 00:00:00 2001 From: Joseph Lizier Date: Sat, 16 May 2020 12:18:57 +1000 Subject: [PATCH] Added non-overloaded method calls for conditionalTE continuous' addObservations() method calls with validity booleans - this is for JPype from Python which seems unable to resolve overloads of double[] and double[][], when more than one variable changes in this way --- ...ferEntropyCalculatorViaCondMutualInfo.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/java/source/infodynamics/measures/continuous/ConditionalTransferEntropyCalculatorViaCondMutualInfo.java b/java/source/infodynamics/measures/continuous/ConditionalTransferEntropyCalculatorViaCondMutualInfo.java index c43a04e..741a843 100755 --- a/java/source/infodynamics/measures/continuous/ConditionalTransferEntropyCalculatorViaCondMutualInfo.java +++ b/java/source/infodynamics/measures/continuous/ConditionalTransferEntropyCalculatorViaCondMutualInfo.java @@ -641,6 +641,27 @@ public class ConditionalTransferEntropyCalculatorViaCondMutualInfo implements } } + /** + * A non-overloaded method signature -- it seems JPype from Python cannot resolve + * overloaded method signatures where more than 2 variables change between univariate and + * multivariate. + * + * @param source + * @param destination + * @param conditionals + * @param sourceValid + * @param destValid + * @param conditionalsValid + * @throws Exception + */ + public void addObservations2D(double[] source, double[] destination, + double[][] conditionals, boolean[] sourceValid, + boolean[] destValid, boolean[][] conditionalsValid) + throws Exception { + addObservations(source, destination, conditionals, + sourceValid, destValid, conditionalsValid); + } + @Override public void addObservations(double[] source, double[] destination, double[] conditionals, boolean[] sourceValid, boolean[] destValid, boolean[] conditionalsValid) throws Exception { @@ -662,6 +683,26 @@ public class ConditionalTransferEntropyCalculatorViaCondMutualInfo implements sourceValid, destValid, conditionalsValidIn2D); } + /** + * A non-overloaded method signature -- it seems JPype from Python cannot resolve + * overloaded method signatures where more than 2 variables change between univariate and + * multivariate. + * + * @param source + * @param destination + * @param conditionals + * @param sourceValid + * @param destValid + * @param conditionalsValid + * @throws Exception + */ + public void addObservations1D(double[] source, double[] destination, double[] conditionals, boolean[] sourceValid, + boolean[] destValid, boolean[] conditionalsValid) throws Exception { + addObservations(source, destination, conditionals, + sourceValid, destValid, conditionalsValid); + } + + /* (non-Javadoc) * @see infodynamics.measures.continuous.ConditionalTransferEntropyCalculator#setObservations(double[], double[], double[][], boolean[], boolean[], boolean[][]) */