help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] scaling in glpk_4_64.dll


From: Heinrich Schuchardt
Subject: Re: [Help-glpk] scaling in glpk_4_64.dll
Date: Fri, 16 Mar 2018 19:56:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]