2021年3月9日星期二

F# and ILNumerics

I have just downloaded the last version of ILNumerics, to be used in my F# project. Is it possible to leverage on this library in F#? I have tried simple computations and it seems very cumbersome (in F#).

I would like to set up a constrained (or even unconstrained) optimization problem. The usual Rosenbrock function would do and then I will use my own function. I am having hard times in having even an Array being defined. The only kind of array I could define was a RetArray, for example with this code

let vector = ILMath.vector<float>(1.0, 2.0)  

The compiler signals that vector is a RetArray; I think this is due to the fact that it is returning from a function (i.e.: ILMath.vector). If I define another similar vector, I can -e.g.- sum vectors, simply writing, for example

let a = ILMath.vector<float>(1.0, 2.0)  let b = ILMath.vector<float>(3.2,2.2)  let c = a  + b   

and I get

RetArray<float> = seq [4.2; 4.2]  

but if I try to retrieve the value of c, again, writing, for example in FSI,

c;;  

I get

Error: Object reference not set to an instance of an object.

What is the suggested way of using ILNumerics in F#? Is it possible to use the library natively in F# or I am forced to call my F# code from a C# library to use the whole ILNumerics library? Other than with the problem cited, I have problems in understanding the very basic logic of ILNumerics, when ported in F#.

For example, what would be the F# equivalent of the C# using scope as in the example code, as in:

using (ILScope.Enter(inData)) { ...    }  
https://stackoverflow.com/questions/66556098/f-and-ilnumerics March 10, 2021 at 07:12AM

没有评论:

发表评论