Skip to content

Commit

Permalink
[iss-237]
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit 833a3c1
Author: joaquin.f.fernandez <joaquin.f.fernandez@gmail.com>
Date:   Fri Sep 8 15:56:14 2023 -0300

    Updated qss methods.

commit 1a8376c
Author: joaquin.f.fernandez <joaquin.f.fernandez@gmail.com>
Date:   Fri Sep 8 15:55:16 2023 -0300

    Updated liqss methods.

commit 52d7071
Author: joaquin.f.fernandez <joaquin.f.fernandez@gmail.com>
Date:   Fri Sep 8 15:54:06 2023 -0300

    Updated liqss_bdf method.

commit 99fe68e
Author: joaquin.f.fernandez <joaquin.f.fernandez@gmail.com>
Date:   Fri Sep 8 15:53:04 2023 -0300

    Updated cqss method.
  • Loading branch information
joaquinffernandez committed Sep 8, 2023
1 parent 3942d93 commit 5df9b6f
Show file tree
Hide file tree
Showing 18 changed files with 134 additions and 1,301 deletions.
59 changes: 12 additions & 47 deletions src/engine/qss/methods/cqss.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,7 @@
#include <qss/qss_data.h>
#include <qss/qss_quantizer.h>

#ifdef QSS_PARALLEL
void CQSS_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
#else
void CQSS_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
#endif
void QSS_FUNC_DECL(CQSS, init)(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
{
int i;
int states = simData->states;
Expand All @@ -48,25 +44,10 @@ void CQSS_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
}
quantizer->state->flag2[0] = 0;
quantizer->state->simTime = &simTime->time;
#ifdef QSS_PARALLEL
quantizer->state->qMap = simData->lp->qMap;
quantizer->ops->recomputeNextTimes = CQSS_PAR_recomputeNextTimes;
quantizer->ops->recomputeNextTime = CQSS_PAR_recomputeNextTime;
quantizer->ops->nextTime = CQSS_PAR_nextTime;
quantizer->ops->updateQuantizedState = CQSS_PAR_updateQuantizedState;
#else
quantizer->ops->recomputeNextTimes = CQSS_recomputeNextTimes;
quantizer->ops->recomputeNextTime = CQSS_recomputeNextTime;
quantizer->ops->nextTime = CQSS_nextTime;
quantizer->ops->updateQuantizedState = CQSS_updateQuantizedState;
#endif
QSS_ASSIGN_QUANTIZER_OPS(CQSS)
}

#ifdef QSS_PARALLEL
void CQSS_PAR_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
#else
void CQSS_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
#endif
void QSS_FUNC_DECL(CQSS, recomputeNextTime)(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
{
int cf0 = var * 2, cf1 = cf0 + 1;
if (quantizer->state->lt[var] == t) {
Expand All @@ -85,32 +66,20 @@ void CQSS_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *n
}
}

#ifdef QSS_PARALLEL
void CQSS_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q)
#else
void CQSS_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q)
#endif
void QSS_FUNC_DECL(CQSS, recomputeNextTimes)(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu,
double *q)
{
int i;
#ifdef QSS_PARALLEL
int *map = quantizer->state->qMap;
#endif
QSS_PARALLEL_EXP(int *map = quantizer->state->qMap;)
for (i = 0; i < vars; i++) {
#ifdef QSS_PARALLEL
if (map[inf[i]] > NOT_ASSIGNED) {
#endif
CQSS_recomputeNextTime(quantizer, inf[i], t, nTime, x, lqu, q);
#ifdef QSS_PARALLEL
}
#endif
QSS_PARALLEL_EXP(if (map[inf[i]] != NOT_ASSIGNED) {)
QSS_FUNC_INVK(CQSS, recomputeNextTime)(quantizer, inf[i], t, nTime, x, lqu, q);
QSS_PARALLEL_EXP(
})
}
}

#ifdef QSS_PARALLEL
void CQSS_PAR_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu)
#else
void CQSS_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu)
#endif
void QSS_FUNC_DECL(CQSS, nextTime)(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu)
{
int cf0 = var * 2, cf1 = cf0 + 1;
if (x[cf1] > 0) {
Expand All @@ -122,11 +91,7 @@ void CQSS_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, dou
}
}

#ifdef QSS_PARALLEL
void CQSS_PAR_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu)
#else
void CQSS_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu)
#endif
void QSS_FUNC_DECL(CQSS, updateQuantizedState)(QA_quantizer quantizer, int var, double *q, double *x, double *lqu)
{
int cf0 = var * 2, cf1 = cf0 + 1;
quantizer->state->lt[var] = *(quantizer->state->simTime);
Expand Down
110 changes: 3 additions & 107 deletions src/engine/qss/methods/cqss.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,114 +17,10 @@
******************************************************************************/

#ifndef CQSS_H_
#define CQSS_H_
#pragma once

#include <common/macros.h>
#include <qss/qss_data.h>
#include <qss/qss_quantizer.h>

/**
* @brief Recomputes the next time of all the influenced variables of...
*
* @param quantizer
* @param vars
* @param inf
* @param t
* @param nTime
* @param x
* @param lqu
* @param q
*/
void CQSS_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q)
__attribute__((hot));
/**
*
* @param quantizer
* @param vars
* @param inf
* @param t
* @param nTime
* @param x
* @param lqu
* @param q
*/
void CQSS_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q)
__attribute__((hot));
/**
*
* @param quantizer
* @param var
* @param t
* @param nTime
* @param x
* @param lqu
* @param q
*/
void CQSS_PAR_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
__attribute__((hot));
/**
*
* @param quantizer
* @param var
* @param t
* @param nTime
* @param x
* @param lqu
* @param q
*/
void CQSS_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
__attribute__((hot));
/**
*
* @param quantizer
* @param var
* @param t
* @param nTime
* @param x
* @param lqu
*/
void CQSS_PAR_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot));
/**
*
* @param quantizer
* @param var
* @param t
* @param nTime
* @param x
* @param lqu
*/
void CQSS_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot));
/**
*
* @param quantizer
* @param var
* @param q
* @param x
* @param lqu
*/
void CQSS_PAR_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu) __attribute__((hot));
/**
*
* @param quantizer
* @param var
* @param q
* @param x
* @param lqu
*/
void CQSS_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu) __attribute__((hot));
/**
*
* @param quantizer
* @param _simData
* @param _simTime
*/
void CQSS_PAR_init(QA_quantizer quantizer, QSS_data _simData, QSS_time _simTime);
/**
*
* @param quantizer
* @param _simData
* @param _simTime
*/
void CQSS_init(QA_quantizer quantizer, QSS_data _simData, QSS_time _simTime);

#endif /* CQSS_H_ */
QSS_DECLARE_QUANTIZER_INTERFACE(CQSS)
59 changes: 12 additions & 47 deletions src/engine/qss/methods/liqss.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,7 @@
#include <qss/qss_data.h>
#include <qss/qss_quantizer.h>

#ifdef QSS_PARALLEL
void LIQSS_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
#else
void LIQSS_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
#endif
void QSS_FUNC_DECL(LIQSS, init)(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
{
int i;
int states = simData->states;
Expand All @@ -50,46 +46,23 @@ void LIQSS_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime)
quantizer->state->lt[i] = simData->it;
}
quantizer->state->simTime = &simTime->time;
#ifdef QSS_PARALLEL
quantizer->state->qMap = simData->lp->qMap;
quantizer->ops->recomputeNextTimes = LIQSS_PAR_recomputeNextTimes;
quantizer->ops->recomputeNextTime = LIQSS_PAR_recomputeNextTime;
quantizer->ops->nextTime = LIQSS_PAR_nextTime;
quantizer->ops->updateQuantizedState = LIQSS_PAR_updateQuantizedState;
#else
quantizer->ops->recomputeNextTimes = LIQSS_recomputeNextTimes;
quantizer->ops->recomputeNextTime = LIQSS_recomputeNextTime;
quantizer->ops->nextTime = LIQSS_nextTime;
quantizer->ops->updateQuantizedState = LIQSS_updateQuantizedState;
#endif
QSS_ASSIGN_QUANTIZER_OPS(LIQSS)
}

#ifdef QSS_PARALLEL
void LIQSS_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q)
#else
void LIQSS_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q)
#endif
void QSS_FUNC_DECL(LIQSS, recomputeNextTimes)(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu,
double *q)
{
int i;
#ifdef QSS_PARALLEL
int *map = quantizer->state->qMap;
#endif
QSS_PARALLEL_EXP(int *map = quantizer->state->qMap;)
for (i = 0; i < vars; i++) {
#ifdef QSS_PARALLEL
if (map[inf[i]] > NOT_ASSIGNED) {
#endif
LIQSS_recomputeNextTime(quantizer, inf[i], t, nTime, x, lqu, q);
#ifdef QSS_PARALLEL
}
#endif
QSS_PARALLEL_EXP(if (map[inf[i]] != NOT_ASSIGNED) {)
QSS_FUNC_INVK(LIQSS, recomputeNextTime)(quantizer, inf[i], t, nTime, x, lqu, q);
QSS_PARALLEL_EXP(
})
}
}

#ifdef QSS_PARALLEL
void LIQSS_PAR_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
#else
void LIQSS_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
#endif
void QSS_FUNC_DECL(LIQSS, recomputeNextTime)(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q)
{
int cf0 = var * 2, cf1 = cf0 + 1;
double *u = quantizer->state->u0;
Expand Down Expand Up @@ -124,11 +97,7 @@ void LIQSS_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *
}
}

#ifdef QSS_PARALLEL
void LIQSS_PAR_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu)
#else
void LIQSS_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu)
#endif
void QSS_FUNC_DECL(LIQSS, nextTime)(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu)
{
int cf1 = var * 2 + 1;
if (x[cf1] == 0) {
Expand All @@ -138,11 +107,7 @@ void LIQSS_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, do
}
}

#ifdef QSS_PARALLEL
void LIQSS_PAR_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu)
#else
void LIQSS_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu)
#endif
void QSS_FUNC_DECL(LIQSS, updateQuantizedState)(QA_quantizer quantizer, int var, double *q, double *x, double *lqu)
{
int cf0 = var * 2, cf1 = cf0 + 1;
double dx;
Expand Down
Loading

0 comments on commit 5df9b6f

Please sign in to comment.