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


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/macports-users

Reply via email to