Missing CHOLMOD in octave 2.9.9
M. White
mwhite15 at woh.rr.com
Sun Feb 25 12:09:24 PST 2007
On Feb 18, 2007, at 22:23, Ryan Schmidt wrote:
>
> On Feb 18, 2007, at 20:33, M. White wrote:
>
>> Hi, I am not exactly if this is the correct place to ask this
>> question or not - my apologies if misplaced.
>>
>> I just installed octave 2.9.9 using darwinports 1.3.2 and tried to
>> run a small matrix test case for matlab (mytrit.m from Johan
>> Helsing of Lund University). When I try to run it, it gets to the
>> line:
>>
>> R=chol(-A);
>>
>> and I get the error message:
>>
>> error: Missing CHOLMOD. Sparse cholesky factorization disabled
>>
>> [If I comment out that section, everything else seems to run fine.]
>>
>> Now as near as I can tell cholmod should be part of SuiteSparse
>> (which was also installed [v. 2.4.0_0] as part of this process).
>> The headers for cholmod are found in "/opt/local/include/
>> ufsparse". Unless there was some error in the installation that
>> was not reported, I should have CHLMOD I think. There is also a
>> chol.oct found in "/opt/local/libexec/octave/2.9.9/oct/powerpc-
>> apple-darwin8.8.0/chol.oct".
>>
>> Unfortunately, the I did not try to build it verbose - and cannot
>> find any log or error files that might point out what actually
>> happened. Does anyone have any ideas on what I possibly did wrong
>> and how I might fix it?
>>
>> I have a copy of 2.1.73 which was installed from binaries provided
>> by hpc.sourcefourge.net last year in /usr/local/bin - but /opt/
>> local/bin comes first in my path. I had originally tried to
>> install the 2.9.9 binaries from there, but it complained because I
>> did not have UMFPACK (probably because I did not have ufsparse at
>> that time).
>>
>> Thank you for your time.
>>
>> - M.
>>
>> P.S. running Mac OS-X 10.4.8 on a G4.
>
> I'm not sure if this is the behavior of the octave port, but the
> behavior of a MacPorts port *should* be that if you just install the
> port, you just get the basic software. If the software can optionally
> use some other feature (like suitesparse or cholmod in this case),
> then there should be a variant of the original port (octave) that you
> can use to enable this functionality (such as +suitesparse or
> +cholmod -- note this is just hypothetical; the octave port has no
> such variant). The maintainer of the octave port should comment on
> how it actually functions.
>
For future reference for anyone who might be interested or run across
the same problem:
Octave has a list of dependencies for full functionality, of which
SuiteSparse is one of them (fftw is another of them). If you build
octave verbose, it will tell you if it had problems with any of
them. If you have the appropriate libraries, octave will use them,
but it will try to compile without them.
After multiple attempts at rebuilding, I finally found the problem -
it is actually with the SuiteSparse port. When the port is
installed, it fails to copy the header:
cholmod_io64.h
into the directory
/opt/local/include/ufsparse
and the first include file in cholmod.h is this file. This is why
the sparse Cholesky factorization was disabled. The easiest way to
fix it is to first configure SuiteSparse and then copy the
cholmod_io64.h header into the appropriate directory before doing the
install. Then an install of octave should work.
Also, in doing this build (and looking at the octave wiki), I notice
that there are 3 more dependencies for octave that are not part of
the package:
pcre
curl [aka cURL]
glpk
One should probably install these ports before installing octave.
[Note: the current darwinport of glpk is glpk-4.14, which will not
work with octave (at least not without some hacking [requires
modifying at least configure and __glpk__.cc, and possibly
configure.in]) - so if you do not have it, that one does not really
matter, 'cause it won't work anyway. I've read that the octave
development group has a working solution for glpk-4.15, but it is not
as simple as taking the current development version of __glpk__.cc
and replacing the current one (at least it did not work for me - I
had to edit the file by hand, and do not have any test cases to see
if it is actually working).]
- M.
More information about the macports-users
mailing list