<div dir="ltr">Thanks for the explanations - I missed the :generic and :method specifiers.<div>I'll study the macro-expansions.</div><div><br></div><div>Sorry for the noise.</div><div><br></div><div>Mirko</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 24, 2015 at 10:16 PM, 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">The original code looks right to me.<br>
<br>
You have taken the generic function and the associated foreign vector<br>
methods #'permute and gratuitously renamed them #'permute-vector,<br>
leaving the method for raw C pointer with the original name and no<br>
generic function. Then you completely delete the generic function and<br>
vector methods for #'permute-inverse for no apparent reason, leaving a<br>
method for the raw C pointer only.<br>
<br>
There is no duplicated code here. There is certainly the equivalent of<br>
gsl_permute_vector, it is the GRID:VECTOR-DOUBLE-FLOAT (second arg)<br>
method of #'permute (which you renamed).<br>
<br>
I recommend macroexpansion as a way of seeing what's being defined. If<br>
you use emacs, place the cursor on the defmfun line and do C-c C-m.<br>
Then you will see all the generic functions and methods, and you will<br>
see there is no error in the original code.<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Nov 24, 2015 at 5:43 PM, Mirko Vukovic <<a href="mailto:mirko.vukovic@gmail.com">mirko.vukovic@gmail.com</a>> wrote:<br>
> Because of a typo, GSLL did not have the equivalent of GSL_PERMUTE_VECTOR.<br>
><br>
> There was also a section of duplicated code.<br>
><br>
> This patch should fix these errors.<br>
><br>
> NOTE: I did not test this patch - My GSLL system is not behaving<br>
> super-cleanly on MSYS2 and GSL2.1.  Proceed with care.<br>
><br>
> Mirko<br>
</div></div></blockquote></div><br></div>