Missing CHOLMOD in octave 2.9.9

Andre Stechert andre at splunk.com
Mon Feb 26 23:57:55 PST 2007


On Feb 25, 2007, at 12:09 PM, M. White wrote:
>
> 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.

The patch for the missing cholmod_io64.h header file is done.  FYI,  
it wasn't anything
about the port, the upstream package is broken.

I'll go ahead and start on adding the additional package  
dependencies, starting with
pcre and curl.  If glpk is workable, I'll add that too, else I'll  
leave it out.

Cheers,
Andre


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2442 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/macports-users/attachments/20070226/fdf76a66/smime.bin


More information about the macports-users mailing list