  
  [1X8 [33X[0;0YExpert use of [5XVole[105X[101X[1X[133X[101X
  
  
  [1X8.1 [33X[0;0Y[10XInfoVole[110X[101X[1X – getting extra information about a [5XVole[105X[101X[1X search[133X[101X
  
  [1X8.1-1 InfoVole[101X
  
  [33X[1;0Y[29X[2XInfoVole[102X [32X info class[133X
  
  [33X[0;0Y[10XInfoVole[110X is the primary info class for [5XVole[105X. See [14X'Reference: Info Functions'[114X
  for a description of info classes in [5XGAP[105X.[133X
  
  [33X[0;0YThe  default  info  level is 0. Most info messages are given at level 2, but
  some messages are given at other levels, up to level 4.[133X
  
  
  [1X8.2 [33X[0;0YOptions with the native [5XVole[105X[101X[1X interface[133X[101X
  
  [33X[0;0YMost  [5XVole[105X functions support several options, which are implemented with the
  [5XGAP[105X  options  system,  which  is  described in the [5XGAP[105X reference manual; see
  [14X'Reference: Options Stack'[114X.[133X
  
  [33X[0;0YIn  brief,  options  can  be  set  for  a  function call by first giving the
  arguments, then writing a colon, and then assigning values to some or all of
  the  permitted  option  names.  Writing an option name without an explicitly
  assigned  value  is a shorthand for assigning the value [9Xtrue[109X to that option.
  Note  that  [13Xoptions  are  passed  down to subsequent function calls[113X that are
  initiated by the original call.[133X
  
  [33X[0;0YHere is an example of a [5XVole[105X function call with the option [10Xraw[110X set to [9Xtrue[109X:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XLoadPackage("vole", false);;[127X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xret := Vole.Intersection(AlternatingGroup(6), PGL(2,5) : raw := true);[127X[104X
    [4X[28Xrec( cosetrep := (), group := Group([ (3,5)(4,6), (2,3,4,6,5), (1,2,6)(3,4,5)[128X[104X
    [4X[28X     ]),[128X[104X
    [4X[28X  raw := rec( canonical := fail, rbase_branches := [ 1, 2, 3 ],[128X[104X
    [4X[28X      search_fix_order := [ 1, 2, 3, 6, 5, 4 ],[128X[104X
    [4X[28X      sols := [ [  ], [ 1, 2, 5, 6, 3, 4 ], [ 1, 3, 4, 6, 2, 5 ],[128X[104X
    [4X[28X          [ 2, 6, 4, 5, 3, 1 ] ],[128X[104X
    [4X[28X      stats := rec( bad_canonical := 0, bad_iso := 3, equal_canonical := 0,[128X[104X
    [4X[28X          gap_callbacks := rec( begin := 2, canonicalmin_time := 0,[128X[104X
    [4X[28X              changed := 24, check := 11, compare := 0, fixed := 38,[128X[104X
    [4X[28X              image := 0, is_group := 0, name := 0, rBaseFinished := 2,[128X[104X
    [4X[28X              refiner_time := 40, restore_state := 24, save_state := 24 ),[128X[104X
    [4X[28X          good_iso := 4, improve_canonical := 0, refiner_calls := 64,[128X[104X
    [4X[28X          search_nodes := 13, trace_fail_nodes := 0, vole_time := 136 ) ),[128X[104X
    [4X[28X  sols := [ (), (3,5)(4,6), (2,3,4,6,5), (1,2,6)(3,4,5) ], time := 220 )[128X[104X
    [4X[25Xgap>[125X [27Xret.group = PSL(2,5);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [33X[0;0YNote  that  the option [10Xraw[110X can also be set to [9Xtrue[109X by simply giving the name
  [10Xraw[110X. Therefore the following line can be used in place of the one above:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xret := Vole.Intersection(AlternatingGroup(6), PGL(2,5) : raw);;[127X[104X
  [4X[32X[104X
  
  
  [1X8.2-1 [33X[0;0YSupported options[133X[101X
  
  [30X    [33X[0;6Y[10Xraw[110X: [9Xtrue[109X or (default) [9Xfalse[109X:[133X
  
        [30X    [33X[0;12YIf [9Xtrue[109X, then rather than returning an object as documented, the
              function  returns  a  record  that contains detailed information
              about  the  execution  and  result  of  the  graph  backtracking
              algorithm  that was executed. The meaning of this information is
              not yet documented, sorry.[133X
  
        [30X    [33X[0;12YNot all [5XVole[105X functions support this option, although most do.[133X
  
  [30X    [33X[0;6Y[10Xpoints[110X: a non-negative integer or (default) [9Xinfinity[109X:[133X
  
        [30X    [33X[0;12YThis   option   can   be   used   in  place  of  the  constraint
              [10XConstraint.LargestMovedPoint(points)[110X;                        see
              [2XConstraint.LargestMovedPoint[102X ([14X6.4-11[114X).[133X
  
        [30X    [33X[0;12YNote  that  for  relevant  functions that accept constraints, an
              integer  argument  is  interpreted  as an instance of a ‘largest
              moved  point’ constraint, which achieves the same affect as this
              option more simply.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XD := PetersenGraph();;[127X[104X
    [4X[25Xgap>[125X [27Xconstraint := Constraint.Stabilise(D, OnDigraphs);;[127X[104X
    [4X[25Xgap>[125X [27XG := VoleFind.Group(constraint : points := DigraphNrVertices(D));;[127X[104X
    [4X[25Xgap>[125X [27X[NrMovedPoints(G), TransitiveIdentification(G)];[127X[104X
    [4X[28X[ 10, 13 ][128X[104X
  [4X[32X[104X
  
