1. 25 May, 2016 6 commits
    • Akim Demaille's avatar
      tuple: use it in inductive · 7a75bb3a
      Akim Demaille authored
      See #44 and #57.
      
      * vcsn/core/automatonset.hh, vcsn/algos/inductive.hh: Support tuple.
      (complement): We don't know how to complement on a multitape automata,
      so disable for the time being.
      * tests/python/standard.py: Check it.
      * bin/vcsn.in, libexec/vcsn-tafkit.cc (inductive): Bind it.
      * tests/bin/test.py (can_check_equivalence): We can't on tuples.
      7a75bb3a
    • Akim Demaille's avatar
      tuple: Cartesian product of automata · 01e9071b
      Akim Demaille authored
      * doc/notebooks/automaton.tuple.ipynb: New.
      
      * python/vcsn/automaton.py (__or__): Bind to tuple.
      * python/vcsn_cxx.cc
      * vcsn/algos/tuple-automaton.hh, vcsn/dyn/algos.hh (tuple): New.
      01e9071b
    • Akim Demaille's avatar
      tuple: operation on polynomials · 885d850e
      Akim Demaille authored
      See also #51.
      
      * vcsn/algos/tuple.hh: New overloads for polynomialsets and polynomials.
      * vcsn/dyn/algos.hh (tuple): New, for polynomials.
      * doc/notebooks/polynomial.operators.ipynb: Doc it.
      * python/vcsn/polynomial.py, python/vcsn_cxx.cc: Bind it.
      * tests/python/polynomial.py: Check it.
      * vcsn/misc/name.hh: Support vector of polynomials.
      885d850e
    • Akim Demaille's avatar
      style: python: factor redundant code · b6be646a
      Akim Demaille authored
      * python/vcsn_cxx.cc (make_value_vector): New.
      Use it.
      b6be646a
    • Akim Demaille's avatar
      python: enable debug printing for automata · 5c8d7319
      Akim Demaille authored
      * python/vcsn/automaton.py: here.
      5c8d7319
    • Akim Demaille's avatar
      style: minor fixes · cfac55e2
      Akim Demaille authored
      * vcsn/algos/conjunction.hh: Fix comments.
      Remove useless includes.
      * vcsn/algos/tuple.hh: Add missing include.
      * vcsn/labelset/labelset.hh: Indentation fixes.
      * vcsn/misc/crange.hh (iterator): Define to comply with detail::cross.
      * vcsn/misc/tuple.hh: Indentation fix.
      * vcsn/core/automaton.hh: Comment changes.
      * libexec/vcsn-compile: Fix support for +=.
      cfac55e2
  2. 24 May, 2016 2 commits
  3. 23 May, 2016 17 commits
    • Clément Gillard's avatar
      tests: improve tests on divkbaseb and quotkbaseb · 8cf9cd49
      Clément Gillard authored
      Add error message to XFAIL to check that the error raised is the expected one
      for the tests on `divkbaseb` and `quotkbaseb`.
      
      * tests/python/factory.py: Here.
      8cf9cd49
    • Clément Gillard's avatar
      context_parser: fuse declaration and definition · ab8e2ccd
      Clément Gillard authored
      See #63. Merge declarations and definitions of the methods of
      `context_parser`.
      
      * lib/vcsn/dyn/context-parser.cc: Here.
      ab8e2ccd
    • Clément Gillard's avatar
      refactor: vcsn-tafkit · 03e57739
      Clément Gillard authored
      See issue #43. Eliminate redundancy between delarations of divkbaseb and
      quotkbaseb.
      
      * libexec/vcsn-tafkit.cc: Here.
      03e57739
    • Clément Gillard's avatar
      doc: add context.quotkbaseb · 1be86229
      Clément Gillard authored
      See issue #43. Add documentation for `context.quotkbaseb(k, b)`.
      
      * doc/notebooks/context.quotkbaseb.ipynb: New file.
      * doc/notebooks/context.divkbaseb.ipynb,
      * doc/notebooks/Algorithms.ipynb,
      * NEWS.txt: Update.
      1be86229
    • Clément Gillard's avatar
      factory: implement quotkbaseb · 8173165b
      Clément Gillard authored and Clément Gillard's avatar Clément Gillard committed
      See issue #43. Implement `context.quotkbaseb(k, b)` which gives a transducer computing
      the quotient of the division by k on numbers of base b.
      
      * vcsn/algos/quotkbaseb.hh: New algorithm.
      * vcsn/dyn/algos.hh, libexec/vcsn-tafkit.cc: Update.
      8173165b
    • Akim Demaille's avatar
      compose: implement polynomial composition · 315e4339
      Akim Demaille authored
      See issue #51.
      
      * vcsn/weightset/polynomialset.hh (compose): New overload for
      polynomials.
      * python/vcsn/polynomial.py, vcsn/dyn/algos.hh: Bind it.
      315e4339
    • Akim Demaille's avatar
      compose: support info · 687abf50
      Akim Demaille authored
      * vcsn/core/rat/info.hh, vcsn/core/rat/size.hh: Support compose.
      * tests/python/info.py: Adjust.
      687abf50
    • Akim Demaille's avatar
      compose: add compose operator for expressions · c2e8e01a
      Akim Demaille authored
      * vcsn/core/rat/fwd.hh (compose): New expression type.
      * vcsn/core/rat/expressionset.hh,
      * vcsn/core/rat/expressionset.hxx (compose): New.
      
      * vcsn/core/rat/copy.hh, vcsn/core/rat/dot.hh, vcsn/core/rat/hash.hh,
      * vcsn/core/rat/less.hh, vcsn/core/rat/printer.hh,
      * vcsn/core/rat/printer.hxx, vcsn/core/rat/visitor.hh,
      * vcsn/core/rat/visitor.hxx:
      Add support for compose.
      
      * vcsn/algos/compose-expression.hh: New.
      * vcsn/dyn/algos.hh (compose): New.
      
      * lib/vcsn/rat/scan.ll, lib/vcsn/rat/parse.yy (@): New operator.
      
      * python/vcsn_cxx.cc (expression::compose): New.
      * python/vcsn/expression.py (@): New operator.
      * tests/rat/tuple.rat: Test identities.
      c2e8e01a
    • Akim Demaille's avatar
      doc: address sanitizer · 80b4ff2b
      Akim Demaille authored
      * doc/notebooks/Hacking.ipynb: here.
      80b4ff2b
    • Akim Demaille's avatar
      style: minor changes · 5d5e81a6
      Akim Demaille authored
      * vcsn/algos/random-expression.hh: fix comments.
      * tests/python/info.py: Sort.
      * vcsn/weightset/polynomialset.hh: Remove dead code.
      5d5e81a6
    • Sébastien Piat's avatar
      filter: use dynamic_bitsets · 16d4fff4
      Sébastien Piat authored and Akim Demaille's avatar Akim Demaille committed
      (1)  (2)  (3)
      1.26 2.28 1.15  a.lightest(5, "yen") # a = std([a-e]?{150}), c = [a-e] -> Nmin, 500x
      
      (1) unordered_set
      (2) sparse_set
      (3) dynamic_bitset
      
      * libexec/vcsn-score: Here.
      * vcsn/algos/filter.hh: Here.
      * vcsn/algos/k-lightest-path.hh: Here.
      16d4fff4
    • Sébastien Piat's avatar
      lightest: fix auto behavior · c8364031
      Sébastien Piat authored and Akim Demaille's avatar Akim Demaille committed
      breadth-first should be auto only when num != 1 as dijkstra is more
      efficient but only works for num == 1.
      
      Yen algorithm is more efficient but does not fit in every situation
      (automaton with loops), hence we prefer to let breadth-first
      implementation be the default one.
      
      Closes #56.
      
      * vcsn/algos/lightest.hh: Here.
      c8364031
    • Sébastien Piat's avatar
      sparse-set: parametrize on unsigned types · f18027dd
      Sébastien Piat authored and Akim Demaille's avatar Akim Demaille committed
      Allow construction with containers.
      
      * vcsn/algos/filter.hh: Here.
      * vcsn/misc/sparse-set.hh: Here.
      f18027dd
    • Sébastien Piat's avatar
      filter: use sparse_set · 84ca927c
      Sébastien Piat authored and Akim Demaille's avatar Akim Demaille committed
      (1)   (2)
      1.26s 2.28s : a.lightest(5, "yen")    # a = std([a-e]?{150}), c = [a-e] -> Nmin, 500x
      
      (1) unordered_set
      (2) sparse_set
      
      * vcsn/algos/filter.hh: Here.
      84ca927c
    • Sébastien Piat's avatar
      index: define it as an integral · d1e3a854
      Sébastien Piat authored and Akim Demaille's avatar Akim Demaille committed
      Mark constructor and cast as constexpr.
      Allow us to use index_t_impl in template parameters.
      For example with std::is_unsigned.
      
      * vcsn/misc/index.hh: Here.
      d1e3a854
    • Sébastien Piat's avatar
      sparse-set: new set structure · aed4f1ea
      Sébastien Piat authored and Akim Demaille's avatar Akim Demaille committed
      New set structure implementing Russ Cox trick.
      Feature has.
      
      * vcsn/misc/sparse-set.hh: Here.
      aed4f1ea
    • Akim Demaille's avatar
      automaton: provide an access to vector sizes for states and transitions · 925433b7
      Akim Demaille authored
      * vcsn/core/automaton.hh (states_size, transitions_size): New.
      
      * vcsn/algos/a-star.hh, vcsn/algos/bellman-ford.hh,
      * vcsn/algos/dijkstra.hh, vcsn/algos/distance.hh,
      * vcsn/algos/epsilon-remover-distance.hh,
      * vcsn/algos/epsilon-remover-separate.hh,
      * vcsn/algos/k-lightest-path.hh, vcsn/algos/minimize-hopcroft.hh,
      * vcsn/algos/to-expression.hh, vcsn/core/polystate-automaton.hh,
      * vcsn/core/transition-map.hh:
      Use them.
      925433b7
  4. 19 May, 2016 4 commits
  5. 17 May, 2016 6 commits
    • Akim Demaille's avatar
      doc: Trouble-Shooting · c980bfa2
      Akim Demaille authored
      * doc/notebooks/Trouble-Shooting.ipynb: New.
      c980bfa2
    • Sébastien Piat's avatar
      tests: check for accessible before calling isomorphic · 60fb7b9f
      Sébastien Piat authored
      Avoid errors on tests.
      
      * tests/bin/test.py: Here.
      60fb7b9f
    • Sébastien Piat's avatar
      python: add fstshortestpath · 952a1053
      Sébastien Piat authored
      * python/vcsn/automaton.py: Here.
      952a1053
    • Akim Demaille's avatar
      dyn: hide implementation details · 5f57c63f
      Akim Demaille authored
      There are many headers that are declared public in vcsn/dyn, although
      they should be kept private to the implementation of libvcsn
      (lib/vcsn/dym...).
      
      * vcsn/dyn/context-printer.hh: Rename as...
      * lib/vcsn/dyn/context-printer.hh: this.
      * vcsn/dyn/context-visitor.hh: Rename as...
      * lib/vcsn/dyn/context-visitor.hh: this.
      * vcsn/dyn/signature-printer.hh: Rename as...
      * lib/vcsn/dyn/signature-printer.hh: this.
      * vcsn/dyn/translate.hh: Rename as...
      * lib/vcsn/dyn/translate.hh: this.
      * vcsn/dyn/type-ast.hh: Rename as...
      * lib/vcsn/dyn/type-ast.hh: this.
      Adjust dependencies.
      5f57c63f
    • Akim Demaille's avatar
      context: improve error message for invalid context names · 203ade8f
      Akim Demaille authored
      See #62.  While at it, move to lib headers that need not be used at
      runtime.
      
      * vcsn/dyn/context-parser.hh: Merge into...
      * lib/vcsn/dyn/context-parser.cc: here.
      * lib/vcsn/dyn/context-parser.hh: New header, exporting just two functions
      from the previous file.
      Those two functions provide better error messages and factor previous calls.
      Use these two functions instead of the ast parser, which is too low-level.
      
      * vcsn/algos/make-context.hh (make_context): Provide context on contexts.
      203ade8f
    • Akim Demaille's avatar
      style: minor changes · f9afbb21
      Akim Demaille authored
      * python/vcsn/tools.py, vcsn/algos/derivation.hh: Style changes.
      f9afbb21
  6. 16 May, 2016 5 commits
    • Akim Demaille's avatar
      doc: update reference · 5602fda0
      Akim Demaille authored
      * doc/notebooks/ICTAC-2016.ipynb: The section has moved.
      5602fda0
    • Lucien Boillod's avatar
      random_expression: minor changes · 4dee14bb
      Lucien Boillod authored
      * doc/notebooks/context.random_expression.ipynb: fix typo.
      * vcsn/algos/random-expression.hh: use 'has' instead of 'find' on unordered_set.
      Minor clean-ups.
      4dee14bb
    • Thibaud Michaud's avatar
      ldiv: document algorithm for the weighted case · 17f83982
      Thibaud Michaud authored
      * doc/notebooks/automaton.ldiv.ipynb: Here.
      17f83982
    • Thibaud Michaud's avatar
      ldiv: insplit right hand side if weightset is b · 8898ff6b
      Thibaud Michaud authored
      In the boolean case, ldiv relies entirely on conjunction. So by insplitting the
      right hand side before computing the conjunction, the spontaneous transitions
      are correctly handled.
      
      * doc/notebooks/automaton.ldiv.ipynb: Update preconditions.
      * vcsn/algos/conjunction.hh: Here.
      8898ff6b
    • Thibaud Michaud's avatar
      ldiv: handle label one in firsts · b314bda2
      Thibaud Michaud authored
      A case like
        (a{\}ab){\}bc
      generates the expansion division:
        \e.[b] {\} b.[c]
      which was not handled properly because of the label one.
      Now, it would evaluate to
        \e.[b\bc]
      
      * vcsn/algos/to-expansion.hh: Here.
      * tests/python/expansion.py: Test it.
      b314bda2