<div dir="ltr"><div>Hi,</div><div><br></div><div>Well, the code says otherwise:</div><div><br></div><div><div>#-gsl2</div><div>(defun jacobian (solver)</div><div>  ;; Raw pointer, because we presume we're passing it on to another GSL function. </div><div>  (cffi:foreign-slot-value (mpointer solver) '(:struct gsl-fdffit-solver) 'jacobian))</div><div><br></div><div>;;; This needs work to make matrix automatically allocated.</div><div>#+gsl2</div><div>(defmfun jacobian (solver matrix)</div><div>  "gsl_multifit_fdfsolver_jac"</div><div>  (((mpointer solver) :pointer) ((mpointer matrix) :pointer))</div><div>  :return (matrix)</div><div>  :documentation</div><div>  "The Jacobian matrix for the current iteration of the solver.")</div></div><div><br></div><div>This says that "jacobian" has two arguments when #+gsl2.</div><div><br></div><div><div>(defmfun ls-covariance</div><div>    (solver relative-error &optional covariance</div><div><span style="white-space:pre">       </span>    &aux (cov (or covariance</div><div><span style="white-space:pre">                    </span>  (grid:make-foreign-array 'double-float</div><div><span style="white-space:pre">                         </span>       :dimensions</div><div><span style="white-space:pre">                         </span>       (list (dim1 solver) (dim1 solver))))))</div><div>  "gsl_multifit_covar"</div><div><br></div><div>  (((jacobian solver) :pointer) (relative-error :double) ((mpointer cov) :pointer))</div><div><br></div><div>  ...)</div></div><div><br></div><div>This calls "jacobian" with one argument: "(jacobian solver)".</div><div><br></div><div>I can't see how a compiler can be fine with this unless it's set up to be quite relaxed.</div><div>Alternatively, I might be reading the code wrong.</div><div><br></div><div>Cheers,</div><div>Gaya</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 23, 2017 at 3:02 AM, Liam Healy <span dir="ltr"><<a href="mailto:lhealy@common-lisp.net" target="_blank">lhealy@common-lisp.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have been on v2 for a while now and have not encountered problems.<br>
<span class="HOEnZb"><font color="#888888"><br>
Liam<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mon, Aug 21, 2017 at 1:45 AM, Name Name <<a href="mailto:byaakaa@gmail.com">byaakaa@gmail.com</a>> wrote:<br>
> Hi,<br>
><br>
> I guess that you have not encountered a problem because you have GSL v.1.<br>
> This happens on v.2.<br>
><br>
> Thanks for your reply.<br>
> Gaya<br>
><br>
> On Aug 20, 2017 5:28 AM, "Liam Healy" <<a href="mailto:lhealy@common-lisp.net">lhealy@common-lisp.net</a>> wrote:<br>
>><br>
>> Thanks for the report. You are right that the interface is wrong, but<br>
>> oddly I have not encountered a problem. I'm not sure what the second<br>
>> argument should be and unfortunately I haven't had the time to dig into it.<br>
>> I will push a fix when I've figured it out.<br>
>><br>
>><br>
>> Liam<br>
>><br>
>> On Wed, Aug 9, 2017 at 11:51 AM, Name Name <<a href="mailto:byaakaa@gmail.com">byaakaa@gmail.com</a>> wrote:<br>
>>><br>
>>> Hi there,<br>
>>><br>
>>> I'm trying to compile the latest version of GSLL (last commit on master<br>
>>> branch dd2e7673) and have a compilation error saying that function<br>
>>> "jacobian" is called with one argument whereas it wants exactly two. It<br>
>>> happens on the following line:<br>
>>><br>
>>><br>
>>> <a href="https://gitlab.common-lisp.net/antik/gsll/blob/master/solve-minimize-fit/nonlinear-least-squares.lisp#L262" rel="noreferrer" target="_blank">https://gitlab.common-lisp.<wbr>net/antik/gsll/blob/master/<wbr>solve-minimize-fit/nonlinear-<wbr>least-squares.lisp#L262</a><br>
>>><br>
>>> and the compiler has the right to complain as with my GSL2 version the<br>
>>> signature of the function indeed wants two arguments:<br>
>>><br>
>>><br>
>>> <a href="https://gitlab.common-lisp.net/antik/gsll/blob/master/solve-minimize-fit/nonlinear-least-squares.lisp#L150" rel="noreferrer" target="_blank">https://gitlab.common-lisp.<wbr>net/antik/gsll/blob/master/<wbr>solve-minimize-fit/nonlinear-<wbr>least-squares.lisp#L150</a><br>
>>><br>
>>> This seems like an easy to fix bug but I have no idea about the internals<br>
>>> of this library.<br>
>>> Could somebody help out?<br>
>>> For now I just exchanged the call (on line L262) of<br>
>>><br>
>>> "(jacobian solver)"<br>
>>><br>
>>> to<br>
>>><br>
>>> "(jacobian solver cov)"<br>
>>><br>
>>> to have some matrix in there but I don't think that this is the right<br>
>>> solution.<br>
>>><br>
>>> Thanks in advance!<br>
>>> Gaya<br>
>>><br>
>><br>
>><br>
><br>
</div></div></blockquote></div><br></div>