Skip to content

Commit

Permalink
Updated cqss method.
Browse files Browse the repository at this point in the history
  • Loading branch information
joaquinffernandez committed Sep 8, 2023
1 parent cb2dc48 commit 99fe68e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 154 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)

0 comments on commit 99fe68e

Please sign in to comment.