From 3abde29bccd80b506daff215bf49fdaa51e3a1fe Mon Sep 17 00:00:00 2001 From: daveabiy <dawitk27@gmail.com> Date: Fri, 16 Jul 2021 02:55:06 +0200 Subject: [PATCH] library for vardata_lagr.cpp --- src/vardata_lagr.h | 96 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 src/vardata_lagr.h diff --git a/src/vardata_lagr.h b/src/vardata_lagr.h new file mode 100644 index 0000000..38b81f8 --- /dev/null +++ b/src/vardata_lagr.h @@ -0,0 +1,96 @@ +/**@file relax_lagr.cpp + * @ingroup Lagrangian + * @brief lagrangian relaxation + * @author Dawit Hailu + */ + +/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ + +#ifndef __SCIP_VARDATA_LAGR__ +#define __SCIP_VARDATA_LAGR__ + +#include "scip/scip.h" + +/** create variable data, in the future I will add the delay array and delay of each var*/ +SCIP_RETCODE SCIPvardataCreateLagrangian( + SCIP* scip, /**< SCIP data structure*/ + SCIP_VARDATA* vardata, /**<pointer to the vardata*/ + SCIP_VAR** vars, + // SCIP_CONS** VarSlotConss, /**< all slot constraints containing the variable */ + // int nVarSlotConss, /**<number of slot constraints the variable is occuring in*/ + int nSlotConss, + int v + +); + +/** gets the slot conss the var is occuring*/ +SCIP_CONS** SCIPvardataGetSlotConss( + SCIP_VARDATA* vardata /**< variable data */ + ); + +/** gets the number of slot conss the var is occuring in*/ +int SCIPvardataGetnVarSlotConss( + SCIP_VARDATA* vardata /**< variable data */ +); + +/** gets the ids of the slotconss the var is occuring*/ +int* SCIPvardataGetconsids( + SCIP_VARDATA* vardata /**< variable data */ +); + +SCIP_Real SCIPvarGetQuotient( + SCIP_VARDATA* vardata +); + +SCIP_RETCODE vardataDelete( + SCIP* scip, /**< SCIP data structure */ + SCIP_VARDATA** vardata /**< vardata to delete */ + ); +/** prints vardata to file stream */ +void SCIPvardataPrint( + SCIP* scip, /**< SCIP data structure */ + SCIP_VARDATA* vardata, /**< variable data */ + FILE* file /**< the text file to store the information into */ +); + + +SCIP_RETCODE vardataCreate( + SCIP* scip, /**< SCIP data structure */ + SCIP_VARDATA** vardata, /**< pointer to vardata */ + SCIP_CONS** VarSlotConss, /**< array of constraints ids */ + int nVarSlotConss, /**< number of constraints */ + SCIP_Real varquotient +); + +/** frees user data of variable */ +SCIP_RETCODE vardatafree( + SCIP* scip, /**< SCIP data structure */ + SCIP_VARDATA** vardata /**< vardata to delete */ + ); + +SCIP_RETCODE lagrVarObjoverNVarslotConss ( + SCIP_VARDATA*** vardata, + SCIP_VAR** var +); + +SCIP_Real SCIPVaraddDualMultiplier( + SCIP* scip, + SCIP_VAR** var, + SCIP_Real* dualmultipliers, + SCIP_PROBDATA* probdata +); + +int SCIPvardataGetVarID( + SCIP_VARDATA* vardata /**< variable data */ +); + +SCIP_RETCODE SCIPvarchangeDuals( + SCIP* relaxscip, + SCIP_VAR*** vars, + SCIP_Real* dualmultipliers, + SCIP_Real* origobj +); + + + +#endif -- GitLab