|
From: | Tim Davis |
Subject: | Re: Problem building 2.9.4 on x86_64 |
Date: | Mon, 28 Nov 2005 13:31:45 -0600 |
User-agent: | Mozilla Thunderbird 1.0.6 (X11/20050715) |
You cannot typecast the long * down to int *. You need to call cholmod_l_row_subtree instead, when compiling with -m64. The 4th argument of that function is long *, not int *. Likewise for all other CHOLMOD routines. You need cholmod_l_* when compiling in 64-bit mode with 64-bit integers. Orion Poplawski wrote:
I get the following error: g++ -c -I/usr/include/glpk -fPIC -I. -I.. -I../liboctave -I../src -I../libcruft/misc -DHAVE_CONFIG_H -Wall -W -Wshadow -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m64 -mtune=nocona -D_GNU_SOURCE ./DLD-FUNCTIONS/spdet.cc -o pic/spdet.o ./DLD-FUNCTIONS/spchol.cc: In function 'octave_value_list Fsymbfact(const octave_value_list&, int)': ./DLD-FUNCTIONS/spchol.cc:612: error: cannot convert 'octave_idx_type*' to 'int*' for argument '4' to 'int cholmod_row_subtree(cholmod_sparse*, cholmod_sparse*, size_t, int*, cholmod_sparse*, cholmod_common*)' This is because on x86_64 octave_idx_type is a 64-bit int. I suppose this is really a ufsparse issue so I'm CCing Tim Davis. Not sure I can safely cast to an int*. Certainly limits the size of the arrays.
------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------
[Prev in Thread] | Current Thread | [Next in Thread] |