Le mar. 10 août 2021 à 20:23, Gilles Sadowski <[email protected]> a écrit :
>
> Hi.
>
> Le mar. 10 août 2021 à 17:38, Jorge Garcia de Alba
> <[email protected]> a écrit :
> >
> > Hello,
> >
> > Would apache commons math be interested in adding code that could
> > easily be used in java language routines or is this out of scope? I
> > think they would be the best choice for implementing this.
> >
> > This is how I imagine it would be used.
> > https://github.com/xjrga/linearprogramming
>
> Is the "LPModel" class[1] which I should look at?
>
> This code is extremely fragile: All the callers within a single JVM
> are mutating the same data (a global variable indeed).
>
> If you require C-like behaviour (through Java "static" functions),
> you should at least have the caller create his own "LPModel"
> instance and have the function(s) take that as an argument.
> For example:
>
> public class LPModel {
> private final ArrayList<LinearConstraint> constraints;
> // etc..
> // -> Remove "static" from _all_ fields (no global data).
>
> // Define a constructor.
> public LPModel(/* arguments */) {
> constraints = ... // Initialize from the constructor's arguments.
> }
>
> public static class Solution {
> // -> A container for the result of a computation.
> }
>
> public Solution solve() {
> // ...
> }
> }
>
> Then if there is a high-level requirement for calling through static
> functions, you'd create a "utility" class:
>
> public class LPModelUtils {
> // Instance creation function.
> public static LPModel create(/* arguments */) {
> return new LPModel(/* arguments */);
> }
>
> // Solver function.
> public LPModel.solution solve(LPModel instance) {
> return instance.solve();
> }
> }
public static LPModel.solution solve(LPModel instance) { ... }
>
> > Here is information on java language routines.
> > http://hsqldb.org/doc/guide/sqlroutines-chapt.html#src_jrt_routines
>
> Thanks. This is high-level requirement that would probably
> call into an intermediate level doing the adaptation to the
> low-level Commons Math (CM) API; I don't think that it can
> provide useful hints about what the CM API should look like.
>
> Best regards,
> Gilles
>
> [1]
> https://github.com/xjrga/linearprogramming/blob/master/src/main/java/io/github/xjrga/linearprogram/LPModel.java
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]