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
As we have discussed before, we are currently not really bothering to add special cases to our packages.
Nevertheless, some optimisations and special cases will naturally creep in, and indeed, some already have: for example, if both Constraint.IsOdd and Constraint.IsEven are specified, then the search doesn't even begin (since there are no even-and-odd perms).
However, for some purposes, it may be useful to be able to use Vole, while ensuring that this never happens.
One way to do this is to use the undocumented _Vole.Solve function, etc, directly (with arguments points, find_single, find_coset, find_canonical, constraints, canonical_group, root_search)...but this is difficult. Surely it would be nicer to offer the same functions as usual, but just to guarantee that nothing clever will be done before the search commences.
I think the simplest way is just to have an option to skip the 'preprocessing' steps of the various VoleFind functions, such as VoleFind.Group and VoleFind.Rep, and simply pass the arguments directly to _Vole.Solve, etc, in the appropriate way.
Perhaps this could be a value option, e.g. VoleFind.Rep(constraint1, refiner1, constraint2 : pure)
The question is: how little processing should be done? Does it still let Vole interpret constraints into refiners, or should it only allow actual refiners as arguments?
(To some extent, this issue may also apply to BacktrackKit and GraphBacktracking).
The text was updated successfully, but these errors were encountered:
wilfwilson
changed the title
Have a version of the search functions that uses no
Have a version of the search functions that does no preprocessing
Jan 31, 2022
As we have discussed before, we are currently not really bothering to add special cases to our packages.
Nevertheless, some optimisations and special cases will naturally creep in, and indeed, some already have: for example, if both
Constraint.IsOdd
andConstraint.IsEven
are specified, then the search doesn't even begin (since there are no even-and-odd perms).However, for some purposes, it may be useful to be able to use Vole, while ensuring that this never happens.
One way to do this is to use the undocumented
_Vole.Solve
function, etc, directly (with argumentspoints, find_single, find_coset, find_canonical, constraints, canonical_group, root_search
)...but this is difficult. Surely it would be nicer to offer the same functions as usual, but just to guarantee that nothing clever will be done before the search commences.I think the simplest way is just to have an option to skip the 'preprocessing' steps of the various
VoleFind
functions, such asVoleFind.Group
andVoleFind.Rep
, and simply pass the arguments directly to_Vole.Solve
, etc, in the appropriate way.Perhaps this could be a value option, e.g.
VoleFind.Rep(constraint1, refiner1, constraint2 : pure)
The question is: how little processing should be done? Does it still let Vole interpret constraints into refiners, or should it only allow actual refiners as arguments?
(To some extent, this issue may also apply to BacktrackKit and GraphBacktracking).
The text was updated successfully, but these errors were encountered: