aboutsummaryrefslogtreecommitdiff
path: root/FEAST/MIToolbox/CalculateProbability.h
diff options
context:
space:
mode:
authorCalvin <calvin@EESI>2013-03-26 13:21:36 -0400
committerCalvin <calvin@EESI>2013-03-26 13:21:36 -0400
commit94da049a53423a9aca04d8376b75347ca7eadcbe (patch)
tree75714a7e2b02b4a9cbd51f0d43b16b6e92dbd4f6 /FEAST/MIToolbox/CalculateProbability.h
parent15094127277f73541a1c2f887caf1c7edda7fdb5 (diff)
moved FEAST Libraries
Diffstat (limited to 'FEAST/MIToolbox/CalculateProbability.h')
-rw-r--r--FEAST/MIToolbox/CalculateProbability.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/FEAST/MIToolbox/CalculateProbability.h b/FEAST/MIToolbox/CalculateProbability.h
new file mode 100644
index 0000000..d5e9d3e
--- /dev/null
+++ b/FEAST/MIToolbox/CalculateProbability.h
@@ -0,0 +1,80 @@
+/*******************************************************************************
+** CalculateProbability.h
+** Part of the mutual information toolbox
+**
+** Contains functions to calculate the probability of each state in the array
+** and to calculate the probability of the joint state of two arrays
+**
+** Author: Adam Pocock
+** Created 17/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/>.
+**
+*******************************************************************************/
+
+#ifndef __CalculateProbability_H
+#define __CalculateProbability_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct jpState
+{
+ double *jointProbabilityVector;
+ int numJointStates;
+ double *firstProbabilityVector;
+ int numFirstStates;
+ double *secondProbabilityVector;
+ int numSecondStates;
+} JointProbabilityState;
+
+typedef struct pState
+{
+ double *probabilityVector;
+ int numStates;
+} ProbabilityState;
+
+/*******************************************************************************
+** calculateJointProbability returns the joint probability vector of two vectors
+** and the marginal probability vectors in a struct.
+** It is the base operation for all information theory calculations involving
+** two or more variables.
+**
+** length(firstVector) == length(secondVector) == vectorLength otherwise there
+** will be a segmentation fault
+*******************************************************************************/
+JointProbabilityState calculateJointProbability(double *firstVector, double *secondVector, int vectorLength);
+
+/*******************************************************************************
+** calculateProbability returns the probability vector from one vector.
+** It is the base operation for all information theory calculations involving
+** one variable
+**
+** length(dataVector) == vectorLength otherwise there
+** will be a segmentation fault
+*******************************************************************************/
+ProbabilityState calculateProbability(double *dataVector, int vectorLength);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+