I’m trying to replicate a code of Sigmoidal programming for my optimization problem. The example uses a code where they pass in a list of functions.
fs = fill(logistic, nvar)
dfs = fill(logistic_prime, nvar)
The output shows a list of functions.
200-element Vector{typeof(logistic_prime)}:
logistic_prime (generic function with 1 method)
logistic_prime (generic function with 1 method)
⋮
logistic_prime (generic function with 1 method)
logistic_prime (generic function with 1 method)
However, when I tried to define a list for a function x^b, where b is a parameter between 0 to 1, it generated a different kind of vector list and the program eventually throws up error.
coeffs = repeat([0, 15, 30, 60], outer = states) # generate an array of coefficients of objective function
fs = Function[x -> (coeffs[i]*x^b) for i=1:(states*actions)]
dfs = Function[x-> (coeffs[i]*b*x^(b-1)) for i=1:(states*actions)]
The output of this snippet is,
Function[var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"(), var"#49#50"()]Function[var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"(), var"#51#52"()]
Which is not the same as what they get using a library. How do I rectify this?
What am I missing and where do I get the fundamentals correct?