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 <stdarg.h>
|
||||
|
||||
// #region Error Handling and Debugging
|
||||
void _error(char *fmt, ...) {
|
||||
fprintf(stderr, "<\x1B[31;1m ERROR \x1B[0m: \x1B[34m'");
|
||||
|
||||
@ -55,7 +56,9 @@ void _warn(char *fmt, ...) {
|
||||
|
||||
fprintf(stderr, "'\x1B[0m\n");
|
||||
}
|
||||
// #endregion
|
||||
|
||||
// #region Aufgabe 1
|
||||
double interpolateLine(
|
||||
double dX1,
|
||||
double dY1,
|
||||
@ -256,3 +259,75 @@ MMSignal *createSignalFromSignal(MMSignal *pmmsIn) {
|
||||
|
||||
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