Add add all remaining MMS-Functions; Questions remain open; Add Region markers
This commit is contained in:
parent
a072c1f6a4
commit
8595360963
75
MMS24-25.c
75
MMS24-25.c
@ -19,6 +19,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
// #region Error Handling and Debugging
|
||||||
void _error(char *fmt, ...) {
|
void _error(char *fmt, ...) {
|
||||||
fprintf(stderr, "<\x1B[31;1m ERROR \x1B[0m: \x1B[34m'");
|
fprintf(stderr, "<\x1B[31;1m ERROR \x1B[0m: \x1B[34m'");
|
||||||
|
|
||||||
@ -55,7 +56,9 @@ void _warn(char *fmt, ...) {
|
|||||||
|
|
||||||
fprintf(stderr, "'\x1B[0m\n");
|
fprintf(stderr, "'\x1B[0m\n");
|
||||||
}
|
}
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region Aufgabe 1
|
||||||
double interpolateLine(
|
double interpolateLine(
|
||||||
double dX1,
|
double dX1,
|
||||||
double dY1,
|
double dY1,
|
||||||
@ -256,3 +259,75 @@ MMSignal *createSignalFromSignal(MMSignal *pmmsIn) {
|
|||||||
|
|
||||||
return signal;
|
return signal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MMSignal *createSignalWithDefault(int iArrayLen, double dDefaultValue) {
|
||||||
|
MMSignal *signal = createSignal();
|
||||||
|
|
||||||
|
signal->pdValues = (double*) malloc(sizeof(double) *iArrayLen);
|
||||||
|
if (signal->pdValues == NULL)
|
||||||
|
_error("createSignalWithDefault: Failed to allocate memory for signal->pdValues\n");
|
||||||
|
|
||||||
|
for (int i = 0; i < iArrayLen; i++) {
|
||||||
|
signal->pdValues[i] = dDefaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
signal->iNumValues = iArrayLen;
|
||||||
|
|
||||||
|
return signal;
|
||||||
|
}
|
||||||
|
|
||||||
|
MMSignal *createSignalFromDoubleArray(int iArrayLen, double *pdIn) {
|
||||||
|
MMSignal *signal = createSignal();
|
||||||
|
|
||||||
|
signal->pdValues = (double*) malloc(sizeof(double) *iArrayLen);
|
||||||
|
if (signal->pdValues == NULL)
|
||||||
|
_error("createSignalFromDoubleArray: Failed to allocate memory for signal->pdValues\n");
|
||||||
|
|
||||||
|
for (int i = 0; i < iArrayLen; i++) {
|
||||||
|
signal->pdValues[i] = pdIn[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
signal->iNumValues = iArrayLen;
|
||||||
|
|
||||||
|
return signal;
|
||||||
|
}
|
||||||
|
|
||||||
|
MMSignal *createSignalFromFile(char *pcInName) {
|
||||||
|
double *pdIn = NULL;
|
||||||
|
int iArrayLen = readDoubleArray(pcInName, &pdIn);
|
||||||
|
|
||||||
|
MMSignal *signal = createSignal();
|
||||||
|
|
||||||
|
signal->pdValues = (double*) malloc(sizeof(double) *iArrayLen);
|
||||||
|
if (signal->pdValues == NULL)
|
||||||
|
_error("createSignalFromFile: Failed to allocate memory for signal->pdValues\n");
|
||||||
|
|
||||||
|
for (int i = 0; i < iArrayLen; i++) {
|
||||||
|
signal->pdValues[i] = pdIn[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
signal->iNumValues = iArrayLen;
|
||||||
|
|
||||||
|
return signal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeMMSignal(char *pcInName, MMSignal *pmmsIn) {
|
||||||
|
writeDoubleArray(
|
||||||
|
pmmsIn->pdValues,
|
||||||
|
pmmsIn->iNumValues,
|
||||||
|
pcInName
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void deleteSignal(MMSignal *pmmsIn) {
|
||||||
|
free(pmmsIn->pdValues);
|
||||||
|
free(pmmsIn->pexExtrema->pexLocalMax->piLocalExtremaPos);
|
||||||
|
free(pmmsIn->pexExtrema->pexLocalMax);
|
||||||
|
free(pmmsIn->pexExtrema->pexLocalMin->piLocalExtremaPos);
|
||||||
|
free(pmmsIn->pexExtrema->pexLocalMin);
|
||||||
|
free(pmmsIn->pexExtrema);
|
||||||
|
free(pmmsIn);
|
||||||
|
}
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region Aufgabe 2
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user