00001 #ifndef _MQFLOAT_ARRAY_H_
00002 #define _MQFLOAT_ARRAY_H_
00003
00004
00005
00006
00007
00008
00017 #define FLOAT_SWAP(a,b) {float_temp=(a);(a)=(b);(b)=float_temp;}
00018
00019 extern float float_temp;
00020
00021 int MQFloat_isWithinBounds(float num, float lower, float upper);
00022
00023 float* MQFloatArray_create(int size);
00024
00025 float* MQFloatArray_createOnes (int size);
00026 float* MQFloatArray_createZeros(int size);
00027
00028 float* MQFloatArray_createInit(int size, float first, ...);
00029
00030 float* MQFloatArray_createIncrByOne(int size, int start);
00031 float* MQFloatArray_createIncr(int size, float start, float delta);
00032
00033 float* MQFloatArray_createAddFloatToFloatArray(float* input, int size, float addition);
00034 float* MQFloatArray_createAddFloatToMQIntArray (int* input, int size, float addition);
00035
00036 float MQFloatArray_getMin(float* array, int start, int stop);
00037 float MQFloatArray_getMax(float* array, int start, int stop);
00038 int MQFloatArray_getIndexOfMax(float* array, int start, int stop);
00039 void MQFloatArray_eliminateNegatives(float* array, int start, int stop);
00040
00041 float* MQFloatArray_load(FILE* fp, int* size);
00042 float* MQFloatArrays_subtract(float* array1, float* array2, int nsize);
00043 void MQFloatArray_subtract(float* input, float* array2, int nsize);
00044
00045
00046 void MQFloatArray_print(float* array, int start, int stop, int format);
00047 void MQFloatArray_fprint (FILE* fp, float* array,
00048 int start, int stop,
00049 int format);
00050
00051 void MQFloatArray_fprint_ns( FILE* fp, float* array,
00052 int start, int stop,
00053 int n_per_line,
00054 int sigfigs, int decimals);
00055
00056 void MQFloatArray_fprint_nt( FILE* fp, float* array,
00057 int start, int stop,
00058 int n_per_line,
00059 int* sigfigs_array);
00060
00061 void MQFloatArray_fprint_nsd( FILE* fp, float* array,
00062 int start, int stop,
00063 int n_per_line,
00064 int sigfigs, int decimals,
00065 char delimiter);
00066
00067 void MQFloatArray_fprint_ntd( FILE* fp, float* array,
00068 int start, int stop,
00069 int n_per_line,
00070 int* sigfigs_array,
00071 char delimiter);
00072
00073 void MQFloatArray_fprintfTwo(FILE* fp,
00074 float* array_1, float* array_2,
00075 int start , int stop,
00076 char* format_1, char* format_2,
00077 int elem_per_line);
00078
00079 void MQFloatArray_fprintBinary(FILE* fp, float* array, int start, int stop);
00080
00081 char* MQFloatArray_toString(float* array, int start, int stop, int* sigfigs);
00082
00083
00084 float* MQFloatArray_copyPart (float* array, int start, int stop);
00085 float* MQFloatArray_copy (float* array, int size);
00086 void MQFloatArray_transferElements (float* dest, float* source, int size);
00087
00088 int MQFloatArray_findNoOfMaxima(float* array, int npeaks);
00089 float MQFloatArray_addup(float* array, int start, int stop);
00090 float* MQFloatArray_merge(float* array1, long size1, float* array2, long size2, long* size);
00091
00092 void* MQFloatArray_getElement(const void* array, unsigned int index);
00093
00094 void MQFloatArray_scale(float* array, int start, int stop, float scaling_factor);
00095 void MQFloatArray_divide(float* array, int start, int stop, float dividing_factor);
00096
00097 float* MQFloatArray_getLog(float* pNonZero, int nNonZero, float dbase);
00098 void MQFloatArray_operatorPlusEquals(float* a, float* b, int start, int stop);
00099 float* MQFloatArray_getNonZeros(float* a, int start, int stop, int* nsize);
00100
00101 float* MQFloatArray_expandZeroPadding(float* compressed, int size, int expanded_size);
00102
00103 float* MQFloatArray_copyExcluding(float* array, int start, int stop, float exclusion_value, int* new_size);
00104 #endif
00105