aboutsummaryrefslogtreecommitdiff
path: root/FEAST/MIToolbox/Entropy.c
diff options
context:
space:
mode:
authorCalvin Morrison <mutantturkey@gmail.com>2014-03-18 15:59:19 -0400
committerCalvin Morrison <mutantturkey@gmail.com>2014-03-18 15:59:19 -0400
commit97e1498130a72f0a081b42759fa386a7460bb75d (patch)
treebe897b69304081377ce39ce019a652eb73d5a9c1 /FEAST/MIToolbox/Entropy.c
parent49162177c5da0404d41f91f5f41006f0456babcd (diff)
remove FEAST from our source, as our changes went upstream
Diffstat (limited to 'FEAST/MIToolbox/Entropy.c')
-rw-r--r--FEAST/MIToolbox/Entropy.c130
1 files changed, 0 insertions, 130 deletions
diff --git a/FEAST/MIToolbox/Entropy.c b/FEAST/MIToolbox/Entropy.c
deleted file mode 100644
index 3f37cc1..0000000
--- a/FEAST/MIToolbox/Entropy.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
-** Entropy.cpp
-** Part of the mutual information toolbox
-**
-** Contains functions to calculate the entropy of a single variable H(X),
-** the joint entropy of two variables H(X,Y), and the conditional entropy
-** H(X|Y)
-**
-** Author: Adam Pocock
-** Created 19/2/2010
-**
-** Copyright 2010 Adam Pocock, The University Of Manchester
-** www.cs.manchester.ac.uk
-**
-** This file is part of MIToolbox.
-**
-** MIToolbox is free software: you can redistribute it and/or modify
-** it under the terms of the GNU Lesser General Public License as published by
-** the Free Software Foundation, either version 3 of the License, or
-** (at your option) any later version.
-**
-** MIToolbox is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU Lesser General Public License for more details.
-**
-** You should have received a copy of the GNU Lesser General Public License
-** along with MIToolbox. If not, see <http://www.gnu.org/licenses/>.
-**
-*******************************************************************************/
-
-#include "MIToolbox.h"
-#include "CalculateProbability.h"
-#include "Entropy.h"
-
-double calculateEntropy(double *dataVector, int vectorLength)
-{
- double entropy = 0.0;
- double tempValue = 0.0;
- int i;
- ProbabilityState state = calculateProbability(dataVector,vectorLength);
-
- /*H(X) = - sum p(x) log p(x)*/
- for (i = 0; i < state.numStates; i++)
- {
- tempValue = state.probabilityVector[i];
-
- if (tempValue > 0)
- {
- entropy -= tempValue * log(tempValue);
- }
- }
-
- entropy /= log(2.0);
-
- FREE_FUNC(state.probabilityVector);
- state.probabilityVector = NULL;
-
- return entropy;
-}/*calculateEntropy(double *,int)*/
-
-double calculateJointEntropy(double *firstVector, double *secondVector, int vectorLength)
-{
- double jointEntropy = 0.0;
- double tempValue = 0.0;
- int i;
- JointProbabilityState state = calculateJointProbability(firstVector,secondVector,vectorLength);
-
- /*H(XY) = - sumx sumy p(xy) log p(xy)*/
- for (i = 0; i < state.numJointStates; i++)
- {
- tempValue = state.jointProbabilityVector[i];
- if (tempValue > 0)
- {
- jointEntropy -= tempValue * log(tempValue);
- }
- }
-
- jointEntropy /= log(2.0);
-
- FREE_FUNC(state.firstProbabilityVector);
- state.firstProbabilityVector = NULL;
- FREE_FUNC(state.secondProbabilityVector);
- state.secondProbabilityVector = NULL;
- FREE_FUNC(state.jointProbabilityVector);
- state.jointProbabilityVector = NULL;
-
- return jointEntropy;
-}/*calculateJointEntropy(double *, double *, int)*/
-
-double calculateConditionalEntropy(double *dataVector, double *conditionVector, int vectorLength)
-{
- /*
- ** Conditional entropy
- ** H(X|Y) = - sumx sumy p(xy) log p(xy)/p(y)
- */
-
- double condEntropy = 0.0;
- double jointValue = 0.0;
- double condValue = 0.0;
- int i;
- JointProbabilityState state = calculateJointProbability(dataVector,conditionVector,vectorLength);
-
- /*H(X|Y) = - sumx sumy p(xy) log p(xy)/p(y)*/
- /* to index by numFirstStates use modulus of i
- ** to index by numSecondStates use integer division of i by numFirstStates
- */
- for (i = 0; i < state.numJointStates; i++)
- {
- jointValue = state.jointProbabilityVector[i];
- condValue = state.secondProbabilityVector[i / state.numFirstStates];
- if ((jointValue > 0) && (condValue > 0))
- {
- condEntropy -= jointValue * log(jointValue / condValue);
- }
- }
-
- condEntropy /= log(2.0);
-
- FREE_FUNC(state.firstProbabilityVector);
- state.firstProbabilityVector = NULL;
- FREE_FUNC(state.secondProbabilityVector);
- state.secondProbabilityVector = NULL;
- FREE_FUNC(state.jointProbabilityVector);
- state.jointProbabilityVector = NULL;
-
- return condEntropy;
-
-}/*calculateConditionalEntropy(double *, double *, int)*/
-