From c06c71b091b576a9f055abee87cf3cb297549717 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 5 Jan 2026 00:43:47 +0100 Subject: [PATCH] added AQDG_Data_DifferenceY() --- src/lib/aqdiagram/data/diff.c | 30 ++++++++++++++++++++++++++++++ src/lib/aqdiagram/data/diff.h | 3 +++ 2 files changed, 33 insertions(+) diff --git a/src/lib/aqdiagram/data/diff.c b/src/lib/aqdiagram/data/diff.c index 99f158a..123117a 100644 --- a/src/lib/aqdiagram/data/diff.c +++ b/src/lib/aqdiagram/data/diff.c @@ -84,3 +84,33 @@ double AQDG_Data_GetAbsMinDiffY(const AQDG_GRAPH_DATAPAIR_LIST *dpList) +AQDG_GRAPH_DATAPAIR_LIST *AQDG_Data_DifferenceY(const AQDG_GRAPH_DATAPAIR_LIST *dpList) +{ + if (dpList && AQDG_Graph_DataPair_List_GetCount(dpList)) { + AQDG_GRAPH_DATAPAIR_LIST *newList; + const AQDG_GRAPH_DATAPAIR *dp; + + newList=AQDG_Graph_DataPair_List_new(); + dp=AQDG_Graph_DataPair_List_First(dpList); + if (dp) { + double lastValue; + + lastValue=AQDG_Graph_DataPair_GetValueY(dp); + while(dp) { + AQDG_GRAPH_DATAPAIR *newDp; + double v; + + v=AQDG_Graph_DataPair_GetValueY(dp); + newDp=AQDG_Graph_DataPair_dup(dp); + AQDG_Graph_DataPair_SetValueY(newDp, v-lastValue); + AQDG_Graph_DataPair_List_Add(newDp, newList); + lastValue=v; + dp=AQDG_Graph_DataPair_List_Next(dp); + } + return newList; + } + } + return NULL; +} + + diff --git a/src/lib/aqdiagram/data/diff.h b/src/lib/aqdiagram/data/diff.h index 9e0bd76..bea49b2 100644 --- a/src/lib/aqdiagram/data/diff.h +++ b/src/lib/aqdiagram/data/diff.h @@ -20,6 +20,9 @@ extern "C" { AQDG_API double AQDG_Data_GetAbsMinDiffX(const AQDG_GRAPH_DATAPAIR_LIST *dpList); +AQDG_API double AQDG_Data_GetAbsMinDiffY(const AQDG_GRAPH_DATAPAIR_LIST *dpList); + +AQDG_API AQDG_GRAPH_DATAPAIR_LIST *AQDG_Data_DifferenceY(const AQDG_GRAPH_DATAPAIR_LIST *dpList);