Tamas,
you are right, this is one thing. But even if it is igraph_real_t the
compiler gives a warning (gcc) or error (g++), because
igraph_matrix_copy_to expects a pointer to a real, and not a pointer
to an array. See e.g.
http://www.lysator.liu.se/c/c-faq/c-2.html#2-10
Fernando, consider using a pointer to the first element of the array
instead of a pointer to an array. I think this can be done by a simple
casting, although I might miss something here, pointers to arrays are
tricky. Also, I don't know whether using g++ instead of gcc changes
anything here, except for getting an error instead of a warning.
But actually, why copying the thing anyway? What is wrong with keeping
it in an igraph_matrix_t?
Best,
Gabor
On Mon, Jun 28, 2010 at 8:22 PM, Tamas Nepusz <address@hidden> wrote:
Hi Fernando,
igraph matrices store real numbers, not integers, therefore long is not a
suitable data type for igraph_matrix_copy_to. Use an array of igraph_real_t
instead:
igraph_real_t distances[numberofnodes][numberofnodes];
--
Tamas
On 2010.06.28., at 18:44, Fernando Martinez wrote:
Dear All,
I'm having problems when using the function igraph_matrix_copy_to()
As I understand it, this function allows to copy an igraph matrix into a normal
C matrix. However, I get an error when compiling.
My code is the following:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include <igraph.h>
int main()
{
igraph_matrix_t matriz;
igraph_vector_t vec;
igraph_vs_t from;
igraph_neimode_t mode = IGRAPH_ALL;
long numberofnodes=512;
long distances[numberofnodes][numberofnodes];
igraph_vs_all(&from);
igraph_shortest_paths(&graph, &matriz, from, mode);
igraph_matrix_copy_to(&matriz, distances);
return(0);
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
I compile in Unbuntu 9.04
g++ -I/igraph -L/lib w1024.cpp -ligraph -lgsl -lgslcblas -o w1024
and gives error for the line of "igraph_matrix_copy_to(&matriz, distances);":
error: cannot convert `long int (*)[((long unsigned int)((long
int)numberofnodes))]' to `igraph_real_t*' for argument `2' to `int
igraph_matrix_copy_to(const igraph_matrix_t*, igraph_real_t*)'
Any ideas on how to pass the data from the igraph matrix to a C matrix?
Cheers,
Fernando
_______________________________________________
igraph-help mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/igraph-help
_______________________________________________
igraph-help mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/igraph-help