<div dir="ltr">Hello Liam (& others)<br><br>I am using SBCL 1.014 and GSL with a timestamp from march of this year.<br><br>I am trying to use the lu.lisp library and cannot compile the invert-matrix example. The error message is "deleting unreachable code" at the (letm.<br>
If I comment out the calls to lu-... and (data-inv) and do instead (data mmat), then it will compile.<br><br>I am including the transcript at the end of this message.<br><br>Any clue as to what could be wrong?<br><br>Thanks,<br>
<br>Mirko<br><br><br>CL-USER> (in-package :gsl)<br>#<PACKAGE "GSLL"><br>GSL> (defun invert-matrix (mat)<br> "Invert the matrix."<br> (letm ((mmat (matrix-double-float mat))<br> (dim (array-dimension mat 0))<br>
(per (permutation dim))<br> (inv (matrix-double-float dim dim)))<br> (lu-decomp mmat per)<br> (lu-invert mmat per inv)<br> (data inv)))<br>; in: LAMBDA NIL<br>; (GSLL:LETM<br>; ((GSLL::MMAT (GSLL:MATRIX-DOUBLE-FLOAT GSLL::MAT))<br>
; (GSLL::DIM (ARRAY-DIMENSION GSLL::MAT 0))<br>; (GSLL::PER (GSLL:PERMUTATION GSLL::DIM))<br>; (GSLL::INV (GSLL:MATRIX-DOUBLE-FLOAT GSLL::DIM GSLL::DIM)))<br>; (GSLL:LU-DECOMP GSLL::MMAT GSLL::PER)<br>; (GSLL:LU-INVERT GSLL::MMAT GSLL::PER GSLL::INV) (GSLL:DATA GSLL::INV))<br>
; --> LET* UNWIND-PROTECT FLET BLOCK MULTIPLE-VALUE-BIND <br>; --> MULTIPLE-VALUE-CALL BLOCK SB-C::%WITHIN-CLEANUP RETURN-FROM PROGN <br>; --> UNLESS COND IF PROGN SETF LET* <br>; ==><br>; GSLL::PER<br>; <br>
; note: deleting unreachable code<br><br>; ==><br>; GSLL::INV<br>; <br>; note: deleting unreachable code<br>; <br>; compilation unit finished<br>; printed 2 notes<br>STYLE-WARNING: redefining INVERT-MATRIX in DEFUN<br>
INVERT-MATRIX<br></div>