On 03/16/2018 03:39 PM, Huber, Jean-Christophe wrote:
> Dear GLPK-team,
> 
>  
> 
> I’m using GLPK64 from VBA/Excel and wanted to define scaling options.
> 
> In the given example for VBA (file glpk.bas in the GLPK64 zip file from
> SourceForge), there is no declaration for the scaling function.
> 
>  
> 
> I tried adding manually as defined below:
> 
>  
> 
> /#if win64 then/
> 
> /Declare PtrSafe Sub glp_scale_prob Lib "C:\GLP_DLL\glpk_4_64.dll"
> (ByVal lp As LongPtr, ByVal flags As Long)/
> 
> /#else/
> 
> /Declare PtrSafe Sub glp_scale_prob Lib
> "C:\GLP_DLL\glpk_4_64_stdcall.dll" (ByVal lp As LongPtr, ByVal flags As
> Long)/

Your definition looks ok. Could you, please, send me a Basic module
(*.bas file) demonstrating the problem.

In the 4.65 release of GLPK for Windows I will add the missing scaling
function definitions for VBA.

' scaling options:
Public Const GLP_SF_GM = &H1         ' perform geometric mean scaling
Public Const GLP_SF_EQ = &H10        ' perform equilibration scaling
Public Const GLP_SF_2N = &H20        ' round scale factors to power of two
Public Const GLP_SF_SKIP = &H40      ' skip if problem is well scaled
Public Const GLP_SF_AUTO = &H80      ' choose scaling options automatically

' Problem scaling routines
' set (change) row scale factor
Declare PtrSafe Sub glp_set_rii(ByVal lp As LongPtr, ByVal i As Long,
ByVal rii As Double)
' set (change) column factor
Declare PtrSafe Sub glp_set_sjj(ByVal lp As LongPtr, ByVal j As Long,
ByVal sjj As Double)
' retrieve row scale factor
Declare PtrSafe Function glp_get_rii(ByVal lp As LongPtr, ByVal i As
Long) As Double
' retrieve column factor
Declare PtrSafe Function glp_get_sjj(ByVal lp As LongPtr, ByVal j As
Long) As Double
' scale problem data
Declare PtrSafe Sub glp_scale_prob(ByVal lp As LongPtr, ByVal flags As Long)
' unscale problem data
Declare PtrSafe Sub glp_unscale_prob(ByVal lp As LongPtr)

Best regards

Heinrich Schuchardt

_______________________________________________
Help-glpk mailing list
Help-glpk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to