From 94da049a53423a9aca04d8376b75347ca7eadcbe Mon Sep 17 00:00:00 2001 From: Calvin Date: Tue, 26 Mar 2013 13:21:36 -0400 Subject: moved FEAST Libraries --- FEAST/MIToolbox/ArrayOperations.h | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 FEAST/MIToolbox/ArrayOperations.h (limited to 'FEAST/MIToolbox/ArrayOperations.h') diff --git a/FEAST/MIToolbox/ArrayOperations.h b/FEAST/MIToolbox/ArrayOperations.h new file mode 100644 index 0000000..3cc9025 --- /dev/null +++ b/FEAST/MIToolbox/ArrayOperations.h @@ -0,0 +1,88 @@ +/******************************************************************************* +** ArrayOperations.h +** Part of the mutual information toolbox +** +** Contains functions to floor arrays, and to merge arrays into a joint +** state. +** +** 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 . +** +*******************************************************************************/ + +#ifndef __ArrayOperations_H +#define __ArrayOperations_H + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************* +** Simple print function for debugging +*******************************************************************************/ +void printDoubleVector(double *vector, int vectorLength); + +void printIntVector(int *vector, int vectorLength); + +/******************************************************************************* +** numberOfUniqueValues finds the number of unique values in an array by +** repeatedly iterating through the array and checking if a value has been +** seen previously +*******************************************************************************/ +int numberOfUniqueValues(double *featureVector, int vectorLength); + +/******************************************************************************* +** normaliseArray takes an input vector and writes an output vector +** which is a normalised version of the input, and returns the number of states +** A normalised array has min value = 0, max value = number of states +** and all values are integers +** +** length(inputVector) == length(outputVector) == vectorLength otherwise there +** is a memory leak +*******************************************************************************/ +int normaliseArray(double *inputVector, int *outputVector, int vectorLength); + +/******************************************************************************* +** mergeArrays takes in two arrays and writes the joint state of those arrays +** to the output vector +** +** the length of the vectors must be the same and equal to vectorLength +*******************************************************************************/ +int mergeArrays(double *firstVector, double *secondVector, double *outputVector, int vectorLength); +int mergeArraysArities(double *firstVector, int numFirstStates, double *secondVector, int numSecondStates, double *outputVector, int vectorLength); + +/******************************************************************************* +** mergeMultipleArrays takes in a matrix and repeatedly merges the matrix using +** merge arrays and writes the joint state of that matrix +** to the output vector +** +** the length of the vectors must be the same and equal to vectorLength +** matrixWidth = the number of columns in the matrix +*******************************************************************************/ +int mergeMultipleArrays(double *inputMatrix, double *outputVector, int matrixWidth, int vectorLength); +int mergeMultipleArraysArities(double *inputMatrix, double *outputVector, int matrixWidth, int *arities, int vectorLength); + +#ifdef __cplusplus +} +#endif + +#endif + -- cgit v1.2.3