You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The handling, and default value, of optional vertex parameters should be standardized, and Stimulus should be updated accordingly.
There are currently two C functions which take an optional vertex parameter: igraph_random_spanning_tree() and igraph_fundamental_cycles(). Only the former is exposed at the moment. We need a decision on this issue before I expose the latter.
In C, these two functions interpret a negative vertex index as not passing a vertex.
In R, the situation is more complicated because vertices can be referred to either by a string name or by an integer index. Both must be supported.
IMO there are two reasonable options:
Signal that no vertex is provided by passing a non-positive value. The default parameter value should be 0. NULL is not allowed, nor are passing multiple vertices.
Signal that no vertex is provided by passing NULL. The default parameter value should be NULL. Non-positive integers are not allowed. Multiple vertices are not allowed.
We currently have (1) mostly implemented. The auto-generated code looks like this:
if (!is.null(vid)) vid <- as_igraph_vs(graph, vid)
if (length(vid) == 0) {
stop("No vertex was specified")
}
However, currently, OPTIONAL VERTEX, without an explicit default, uses NULL as the default, which triggers the "No vertex was specified" error. If we go with choice (1), Stimulus should be updated to use 0 instead of NULL as the default. If we go with choice (2), the autogen code template must be updated for this.
@krlmlr, can you make a decision on this? When that is done, can you adapt Stimulus, @Antonov548 ?
The text was updated successfully, but these errors were encountered:
Sorry, I'm not follow anymore. From the all pull requests and discussion I have thoughts that changes to Stimulus are not required.
Is there still anything I need to update in Stimulus?
Since we're going with option 2, I think you're right. But to be sure, it'd be great to actually implement this (by removing the default of 0 from igraph_random_spanning_tree and letting it use the OPTIONAL default of NULL) and make sure it all works.
The handling, and default value, of optional vertex parameters should be standardized, and Stimulus should be updated accordingly.
There are currently two C functions which take an optional vertex parameter:
igraph_random_spanning_tree()
andigraph_fundamental_cycles()
. Only the former is exposed at the moment. We need a decision on this issue before I expose the latter.In C, these two functions interpret a negative vertex index as not passing a vertex.
In R, the situation is more complicated because vertices can be referred to either by a string name or by an integer index. Both must be supported.
IMO there are two reasonable options:
NULL
is not allowed, nor are passing multiple vertices.NULL
. The default parameter value should beNULL
. Non-positive integers are not allowed. Multiple vertices are not allowed.We currently have (1) mostly implemented. The auto-generated code looks like this:
However, currently,
OPTIONAL VERTEX
, without an explicit default, usesNULL
as the default, which triggers the "No vertex was specified" error. If we go with choice (1), Stimulus should be updated to use0
instead ofNULL
as the default. If we go with choice (2), the autogen code template must be updated for this.@krlmlr, can you make a decision on this? When that is done, can you adapt Stimulus, @Antonov548 ?
The text was updated successfully, but these errors were encountered: