[igraph] About bliss isomorphism testing and potential bug in igraph_isomorphic_bliss

2015-08-30 Thread Szabolcs Horvát
Dear All,

I have a few questions about C/igraph and isomorphism testing using bliss.

According to the documentation, igraph uses bliss 0.35

http://igraph.org/c/doc/igraph-Isomorphism.html#idm470920858320

* Is this accurate?

If yes, is there a specific reason why igraph doesn't upgrade to more
recent bliss?  Currently 0.50 and 0.72 are available.  0.50 seems to
have functionality that 0.72 doesn't.  Maybe the same is the case with
0.35?

The R/igraph documentation says that bliss doesn't support directed
graphs: http://igraph.org/r/doc/isomorphic.html  The C/igraph
documentation makes no such mention and the canonical_permutation
function does return a result for directed graphs.

* Does bliss support directed graphs in igraph?

All igraph_bliss functions return an igraph_bliss_info_t which has the
group_size member.

* Do I need to _always_ free(group_size), even if I ran some other
function than igraph_automorphisms()?

Finally, the bliss documentation says:

http://www.tcs.hut.fi/Software/bliss/doxy/classbliss_1_1Graph.html#08da370e34106cd7db479eca7c7375cc

"The selected splitting heuristics affects the computed canonical
labelings; therefore, if you want to compare whether two graphs are
isomorphic by computing and comparing (for equality) their canonical
versions, be sure to use the same splitting heuristics for both
graphs."

But igraph_isomorphic_bliss takes a _separate_ splitting heuristic
argument for each of the two input graphs.  It would seem that setting
different splitting heuristics may cause the function to return a
wrong result.

 * Is it a bug that different splitting heuristics are allowed?  Or is
it done intentionally?

Szabolcs

___
igraph-help mailing list
igraph-help@nongnu.org
https://lists.nongnu.org/mailman/listinfo/igraph-help


Re: [igraph] How bad an idea is to access the igraph_vector_t and igraph_matrix_t structs directly?

2015-08-30 Thread Szabolcs Horvát
I'm sorry, I realize I made a mistake and igraph does store matrices
in column major order.

On 30 August 2015 at 21:12, Szabolcs Horvát  wrote:
> Dear All,
>
> The igraph_vector_t and igraph_matrix_t structs don't seem to be
> documented.  Does this mean that they are not meant to be used by end
> users and I should stick to the documented API instead of accessing
> the structs directly?
>
> For my use case, working with the structs is just more convenient,
> especially for matrices.  I use C++ style being and end iterators
> which seems to be stored int he struct and stor_begin and end.  I need
> to copy matrices as fast as possible in row-major order, which seems
> to be the internal storage format, while  matrix_copy_to() uses
> column-major format.
>
> So, to sum up: how stable is this interface and is it very risky is I
> use it directly?
>
> Szabolcs

___
igraph-help mailing list
igraph-help@nongnu.org
https://lists.nongnu.org/mailman/listinfo/igraph-help


[igraph] How bad an idea is to access the igraph_vector_t and igraph_matrix_t structs directly?

2015-08-30 Thread Szabolcs Horvát
Dear All,

The igraph_vector_t and igraph_matrix_t structs don't seem to be
documented.  Does this mean that they are not meant to be used by end
users and I should stick to the documented API instead of accessing
the structs directly?

For my use case, working with the structs is just more convenient,
especially for matrices.  I use C++ style being and end iterators
which seems to be stored int he struct and stor_begin and end.  I need
to copy matrices as fast as possible in row-major order, which seems
to be the internal storage format, while  matrix_copy_to() uses
column-major format.

So, to sum up: how stable is this interface and is it very risky is I
use it directly?

Szabolcs

___
igraph-help mailing list
igraph-help@nongnu.org
https://lists.nongnu.org/mailman/listinfo/igraph-help