1. 17 Mar, 2010 34 commits
    • Erwan Jahier's avatar
      lurette 0.115 Thu, 07 Nov 2002 14:19:37 +0100 by jahier · 7c4feb61
      Erwan Jahier authored
      Parent-Version:      0.114
      Version-Log:
      
      source/automata.ml:
         Fix a bug where esp loops were not always cutted properly in some cases.
      
      source/show_env.ml:
         Truncate too long for in the dot output (which bugs dot or gv).
      
      ihm/xlurette/xlurette_glade_main.ml:
         Accept both .lut or .lut files as anv files, and make the show buttons
         behave properly in both cases.
      
      Project-Description: Lurette
      7c4feb61
    • Erwan Jahier's avatar
      lurette 0.112 Thu, 31 Oct 2002 08:21:03 +0100 by jahier · dc8f78dc
      Erwan Jahier authored
      Parent-Version:      0.111
      Version-Log:
      
      source/parse_poc.ml: (new file)
      source/gen_stubs.ml:
         put everything that is related to poc parsing into
         parse_poc.ml.
      
      source/gen_fake_lutin.ml: (new file)
      source/parse_poc.ml: (new file)
      source/Makefile.gen_fake_lutin: (new file)
         When no .lut is provided, we generate a fake one.
      
      Project-Description: Lurette
      dc8f78dc
    • Erwan Jahier's avatar
      lurette 0.99 Fri, 04 Oct 2002 13:49:58 +0200 by jahier · 3797df71
      Erwan Jahier authored
      Parent-Version:      0.98
      Version-Log:
      
      source/solver.ml:
      source/rnumsolver.mli,.ml:
      source/constraint.ml,.mli:
         Split the Constraint.t type into t and ineq where
         inequalities are in ineq. The rational is that most
         operations on constaint.t are actually done on ineq.
         This change therefore avoid pattern like
         <<_ -> assert false>> and let the type checher check
         that sort of things.
      
      Project-Description: Lurette
      3797df71
    • Erwan Jahier's avatar
      lurette 0.97 Fri, 04 Oct 2002 11:30:11 +0200 by jahier · 5d9a1618
      Erwan Jahier authored
      Parent-Version:      0.96
      Version-Log:
      
      Handling equalities smartlier.    .
      
      Project-Description: Lurette
      5d9a1618
    • Erwan Jahier's avatar
      lurette 0.96 Mon, 30 Sep 2002 16:58:31 +0200 by jahier · 42c10bc1
      Erwan Jahier authored
      Parent-Version:      0.95
      Version-Log:
      
      source/ne.ml,mli:
      source/value.ml,mli:
         (new files) put everything that is related to normal expressions
         and values in thoses 2 new modules.
      
      source/ne.ml,mli:
      source/gne.ml,mli:
         Make the normal expressions and the guarded normal expression abstract.
      
      source/solver.ml:
         also fix a bug in the previous change (forgot to try make test ...)
      
      Project-Description: Lurette
      42c10bc1
    • Erwan Jahier's avatar
      lurette 0.95 Mon, 30 Sep 2002 09:32:45 +0200 by jahier · 9f11061a
      Erwan Jahier authored
      Parent-Version:      0.94
      Version-Log:
      
      Continue to prepare things for the next change (which will try to
      handle equalities smartly).
      
      test/test*.res:
         fix the expected results as this change adds a random toss
         that disturbs the random values.
      
      source/solver.ml:
      source/rnumsolver.ml:
         Add code to handle the fact that the negation of a equality
         is the disjunction of two inegalities, which can not be added
         to store as it is. So we first try with >, and if it fails,
         we try with < (or the other way aroung, depending on a fair toss).
      
         Also split up the code in Solver.draw_in_bdd depending on the
         fact that the current constraint is a boolean, an eq, or an ineg.
      
      source/solver.ml:
         split toss_up_one_var into toss_up_one_var and toss_up_one_var_index,
         one performing the the toss from a var, the other one from a var index.
      
      Project-Description: Lurette
      9f11061a
    • Erwan Jahier's avatar
      lurette 0.94 Fri, 27 Sep 2002 13:20:05 +0200 by jahier · f8219704
      Erwan Jahier authored
      Parent-Version:      0.93
      Version-Log:
      
      Prepare things for the next change (which will try to handle equalities
      smartly).
      
      source/solver.ml:
      source/rnumsolver.ml:
         atomic_formula do not need both < and > (ditto for <= and >=).
         Indeed, I just need to take the opposite, and everything is fine.
         One advantage is that there are less cases to handle. But the key
         advantage is that it make the representation of constraint normal,
         which is important at least when I will try to detect equalities.
      
         Also add a subst list and constraint list fields to the store
         that will ebe used in the forthcoming change. They will resp.
         be used for removeing a dimension when an equality is encountered
         and to delay constraint with more than one variable.
      
      source/constraint.ml,mli: (new files)
         Move there from formula.ml everything that is related to the internal
         representation of constraints.
      
         Also change the name of atomic_formula to linear_constraint, which is
         more informative.
      
      Project-Description: Lurette
      f8219704
    • Erwan Jahier's avatar
      lurette 0.93 Wed, 25 Sep 2002 09:56:41 +0200 by jahier · e9325bcf
      Erwan Jahier authored
      Parent-Version:      0.92
      Version-Log:
      
      source/formula.ml:
      source/solver.ml:
      source/parse_env.ml:
         Handle boolean equalities with Bdd.eq instead of manually
         converting it with <<and>>, <<not>> and <<or>>.
      
      Project-Description: Lurette
      e9325bcf
    • Erwan Jahier's avatar
      lurette 0.83 Tue, 03 Sep 2002 13:37:10 +0200 by jahier · dad7b1f2
      Erwan Jahier authored
      Parent-Version:      0.82
      Version-Log:
      
      source/lurette.ml:
      source/lurettetop.ml:
      source/command_line.ml, .mli:
      source/solver.ml:
      source/env_state.ml:
      source/rnumsolver.ml:
         Add 2 news options, --draw-edges ans --draw-verteces that makes
         lurette draw among the verteces or on the edges of the convex hull
         of solutons.
      
      Project-Description: Lurette
      dad7b1f2
    • Erwan Jahier's avatar
      lurette 0.72 Tue, 23 Jul 2002 16:58:52 +0200 by jahier · d27d91fe
      Erwan Jahier authored
      Parent-Version:      0.71
      Version-Log:
      
      sim2cro.ml:
         switch inputs and output in the sim2chro display. The rational
         is that local vars, are closer from ima outputs than sut ones.
         and should then be displayed close to them.
      
      gen_stubs.ml:
         indent generated code better.
      
      Project-Description: Lurette
      d27d91fe
    • Erwan Jahier's avatar
      lurette 0.70 Fri, 19 Jul 2002 17:31:37 +0200 by jahier · da43be79
      Erwan Jahier authored
      Parent-Version:      0.69
      Version-Log:
      
      ima_exe.ml:
      lurette.ml:
      env_state.ml:
        Factoring out code into  two new functions, clear_step and clear_all.
      
      env_state.ml:
         Do not use to 2 ranges of indexes (one for atomic formula that depends on
      pre,
         one if it is not) but maintain a list a unused indexes instead.
      
      Project-Description: Lurette
      da43be79
    • Erwan Jahier's avatar
      lurette 0.69 Fri, 19 Jul 2002 10:19:59 +0200 by jahier · 135fe2d5
      Erwan Jahier authored
      Parent-Version:      0.68
      Version-Log:
      
      wtree.ml,mli:   (deleted)
      automa.ml,mli:  (new files)
      control.ml,mli: (new files)
      
         Replace the [wtree] module by an [automata] module, that basically
         does the same job, but in a different way. Namely, it no more uses
         the [wtree] DS to use [graph]s instead.  Indeed, the product of
         wtrees introduces some problems, in particular to ensure its
         correctness wrt to the automata run concurrently. Now, everything a
         dead-simple wrt product: we simply perform a quasi-classical automata
         product (well, at least, much closer from a classical product, cf
         paper).
      
         The way loop counters are handled has also changed. Now, counters are
         handled via expressions of a simple arithmetic language that
         basically lets one initialise a variable to an exact or a random
         value (uniform or normal draw) and decrement it. Arcs are now
         labelled by a formula plus 2 expressions of that mini-language (no
         more weigth nor cpt_init stuff). The 1st expression is evaluated
         during the draw, basically performs any operations on counters, and
         returns a positive int that is used as the formula weigth. The second
         expression (a kind of post-condition) is evaluated if its arc is the
         one that has been elected to perform the step.
      
      At several locations long lines (< 80) are reindented.
      
      parse_env.ml:
         In the ima format, IfThenElseExpr becomes IfThenElseNum.
         Also, parse list more cleanly.
      
      graph.ml,mli:
          Add a function that test whether a transition is in the graph.
      
          Do not sort list of transitions anymore (what was the point?).
          Also do not sort nodes in any way.
      
      show_env_env.ml,mli:
         Abstract away nodes and arcs data types (so that I can display
         Automata graphs). rename generate_env_graph into ima_to_dot.
      
      lurette.ml:
      ima_exe.ml:
         Fix a bug where bbd table were filled by asserted non regression expr.
      
      lurette.ml:
         Fix a bug where incorrect data was sent to sim2chro (ie, the output of the
         previous step instead of the ones of the current step.
      
      env_state.ml:
      solver.ml:
      gne.ml:
         Fix a performance bug where I was storing formula indexes even if
         they were depending on inputs or pre, which is stupid as they generally
         won't be used again. In order to fix that, I introduced  new
         atomic_formula <-> indexes table to stote the ones that do not depend
         on inputs apart. It was also necassery to propogate the <<depend on pre>>
         flag inside Gne.gn_expr (which i renamed Gne.t BTW).
      
      Project-Description: Lurette
      135fe2d5
    • Erwan Jahier's avatar
      lurette 0.66 Thu, 16 May 2002 10:54:38 +0200 by jahier · 66e00627
      Erwan Jahier authored
      Parent-Version:      0.65
      Version-Log:
      
      solver.ml:
              Fix a bug is draw_in_bdd where it was unable to draw in a true
              formula when it was a top level one. The reason was that the
              tossing of remaining vars was not done at draw_in_bdd top level,
              which is wrong since true can appear on ima transitions.
      
      Project-Description: Lurette
      66e00627
    • Erwan Jahier's avatar
      lurette 0.55 Wed, 03 Apr 2002 14:41:43 +0200 by jahier · f570cc25
      Erwan Jahier authored
      Parent-Version:      0.54
      Version-Log:
      
      Allow equalities between formula by translating [A = B] into
      [Or(And(A,B), And(Not(A), Not(B)))].
      
      Fix a bug where lurette had a bad behaviour whenever a toss
      was performed on a domain which size was bigger than max_int
      or max_float.
      
      Fix a bug where lurette was not handling env with both boolean and
      numerical as output vars.  Also add a few comments in solver.ml along
      the way.
      Adds a local bool as an output of heater in order to test the fix
      above.
      
      Project-Description: Lurette
      f570cc25
    • Erwan Jahier's avatar
      lurette 0.54 Tue, 02 Apr 2002 14:25:12 +0200 by jahier · f0aff2da
      Erwan Jahier authored
      Parent-Version:      0.53
      Version-Log:
      
      Cosmetic change:
      
      Encapsulates the various fields of Env_state.
      
      Project-Description: Lurette
      f0aff2da
    • Erwan Jahier's avatar
      lurette 0.52 Thu, 28 Mar 2002 18:10:42 +0100 by jahier · edc79032
      Erwan Jahier authored
      Parent-Version:      0.51
      Version-Log:
      
      Remove the necessity to provide an oracle when the user does
      not have any assertion to check. To do that, I parse the sut
      file and automatically generates a fake oracle that answers always
      true.
      
      Project-Description: Lurette
      edc79032
    • Erwan Jahier's avatar
      lurette 0.51 Wed, 27 Mar 2002 17:46:03 +0100 by jahier · 6f6168b0
      Erwan Jahier authored
      Parent-Version:      0.50
      Version-Log:
      
      Change the way pre are translated in the .env file. Now
      instead of writting "_pre2toto", one writes "pre(2,toto)".
      
      But internally, it is handled the same way as before (i.e., the first
      thing I do when parsing the env file is to transform "pre(2,toto)"
      into "_pre2toto" (it makes the hangling of pre vars much more
      homogeneous with the way the other vars are handled.
      
      Also fix a bug where it was not possible to have a pre on input
      vars because the update_pre was failing to proceed quietly  whenever
      one of its var was not computable because its pre does have a value.
      Also give an appropriate error message whenever the user wrongly
      use a pre on a var that can not be computed.
      
      Project-Description: Lurette
      6f6168b0
    • Erwan Jahier's avatar
      lurette 0.48 Fri, 22 Mar 2002 14:29:17 +0100 by jahier · 1c7769db
      Erwan Jahier authored
      Parent-Version:      0.47
      Version-Log:
      
      Add support for (boolean and numeric) if-then-else.
      
      Remove the eval.ml module as the replacement of pre and input
      vars is now done in Solver.formula_to_bdd.
      
      Add a new module gne.ml that provides a garded normal expressions
      data structure that is used to handle if-then-elses.
      
      Also introduce a new field to env_state called bdd_tbl_global which
      is used to cache the result of formula_to_bdd for bdds that do not
      depend on pre nor input vars. The field bdd_tbl which cache the other
      reults is now cleared at each step because it is useless to store results
      that depends on pre and inputs.
      
      Project-Description: Lurette
      1c7769db
    • Erwan Jahier's avatar
      lurette 0.42 Wed, 13 Mar 2002 10:29:08 +0100 by jahier · 46927269
      Erwan Jahier authored
      Parent-Version:      0.41
      Version-Log:
      
      Make sure that n formula are drawn when even numeric failure occurs.
      To do that, I recursively call draw_n_p_formula until the required
      number of outputs have been generated.
      
      Also fix a bug where my code was not handling cases where several
      formulas corresponding to the same origin and target nodes (Lutin
      probably won't generate such arcs explicitely, but it does
      implicitely via epsilon transitions). The fix consist in adding
      formula in wtree types instead of maintaining a table of formula
      indexed by node list pairs. The env_state.formula_table is thus no
      longer needed.
      
      Project-Description: Lurette
      46927269
    • Erwan Jahier's avatar
      lurette 0.40 Thu, 07 Mar 2002 16:26:47 +0100 by jahier · 9d1241f6
      Erwan Jahier authored
      Parent-Version:      0.39
      Version-Log:
      
      Change the naming convention of prevars. Now, _pretoto is noted
      _pre1toto, and _pre_pre_pretoto is noted _pre3toto.
      
      Also fix a bug in the default initialization of ranges : min_float
      is the smallest positive float, not the smallet one !!
      
      Project-Description: Lurette
      9d1241f6
    • Erwan Jahier's avatar
      lurette 0.39 Thu, 07 Mar 2002 13:36:27 +0100 by jahier · 4579cc26
      Erwan Jahier authored
      Parent-Version:      0.38
      Version-Log:
      
      Use the new cudd interface based on camlidl (mlcuddidl).
      
      Now, bdds do not leaks anymore.  Remove debugging stuff that was used
      to track that problem.
      
      Project-Description: Lurette
      4579cc26
    • Erwan Jahier's avatar
      lurette 0.38 Wed, 06 Mar 2002 10:50:34 +0100 by jahier · c3c5f045
      Erwan Jahier authored
      Parent-Version:      0.37
      Version-Log:
      
      With this change, lurette is now able to handle numeric variables
      over intervals !
      
      Project-Description: Lurette
      c3c5f045
    • Erwan Jahier's avatar
      lurette 0.36 Mon, 04 Mar 2002 13:50:13 +0100 by jahier · 8b44df60
      Erwan Jahier authored
      Parent-Version:      0.35
      Version-Log:
      
      Add support to handle numerical contraints. The numerical stuff is
      untested, but the boolean part works as before.
      
      source/rnumsolver.mli:
      source/rnumsolver.ml:
          New files implementing a numeric solver based on intervals.
      
      source/*.ml:
          Change the var_type type from a string to a sum type containing
          the lower and upper bounds of numeric domains.
      
          Do not maintain a var_name to index correspondance, but a formula to
          index one. This is to be able to handle numerical constraint in bdds.
          This field is not set at init time anymore, but in formula_to_bdd.
      
          Add <>, <, and <= to the type of formula.
      
      Project-Description: Lurette
      8b44df60
    • Erwan Jahier's avatar
      lurette 0.35 Tue, 19 Feb 2002 16:27:14 +0100 by jahier · 429604ce
      Erwan Jahier authored
      Parent-Version:      0.34
      Version-Log:
       Use Hashtbl instead of assoc list to store env_in
      items as eval needs to search in it very often, it might be an issue
      when there is a lot of input variables.
      
      Project-Description: Lurette
      429604ce
    • Erwan Jahier's avatar
      lurette 0.34 Tue, 19 Feb 2002 10:40:58 +0100 by jahier · dba4992a
      Erwan Jahier authored
      Parent-Version:      0.33
      Version-Log:
      
      Fix a bug when computing the power of two.
      
      Project-Description: Lurette
      dba4992a
    • Erwan Jahier's avatar
      lurette 0.33 Mon, 18 Feb 2002 17:52:34 +0100 by jahier · ee4eb63d
      Erwan Jahier authored
      Parent-Version:      0.32
      Version-Log:
      
      Avoid recomputing everytime the list of output vars by storing it
      in an env_state field.
      
      Project-Description: Lurette
      ee4eb63d
    • Erwan Jahier's avatar
      lurette 0.32 Mon, 18 Feb 2002 17:06:16 +0100 by jahier · af07708a
      Erwan Jahier authored
      Parent-Version:      0.31
      Version-Log:
      
      Add an option --no-oracle to prevent that lurette calls the oracle.
      
      The solution number counting function was wrong.
      
      Also, make it easy to switch to float, or to big_int, to store
      the number of solution numbers.
      
      Project-Description: Lurette
      af07708a
    • Erwan Jahier's avatar
      lurette 0.26 Mon, 11 Feb 2002 17:32:29 +0100 by jahier · 8e54c847
      Erwan Jahier authored
      Parent-Version:      0.25
      Version-Log:
      
      Re-arrange the code so that lurette_stub.ml is not called by all the
      modules of lurette to avoid that everything is recompiled each time a
      new sut is used. To do that, lurette nows only manipulates list of
      substitutuions instead of tuples (as only lurette_stub knows the size
      of the tuples).
      
      Also fix two bugs along the way:
          o wtree.ml: Random.int n draw between 0 inclusive and n *exclusive* !
          o wtree.ml: in wtree_product, make sure that I do not unsort list of nodes
          o solver.ml: in draw_in_bdd, I was tossing up the top var of the formula
            instead of tossing up the one of the support
      
      Plus a few cosmetic change:
      
      show_env.ml:
      lurette.ml:
          prints the previous nodes in green environment.ps
      
      lurette.ml:
          rename arcs_inputs_loc into nll_inputs_loc.
      
      Project-Description: Lurette
      8e54c847
    • Erwan Jahier's avatar
      lurette 0.25 Wed, 06 Feb 2002 13:48:27 +0100 by jahier · e7fce05a
      Erwan Jahier authored
      Parent-Version:      0.24
      Version-Log:
      
      command_line.ml,mli: (New files)
      lurette.ml:
              Handle options at the lurette command line.
      
              Give better error messages.
      
      Project-Description: Lurette
      e7fce05a
    • Erwan Jahier's avatar
      lurette 0.24 Tue, 05 Feb 2002 14:10:29 +0100 by jahier · eb46e24b
      Erwan Jahier authored
      Parent-Version:      0.23
      Version-Log:
      
      Make the examples of Yvan work. Fix a bunch of bugs alonf the way...
      
      Project-Description: Lurette
      eb46e24b
    • Erwan Jahier's avatar
      lurette 0.23 Thu, 24 Jan 2002 15:14:37 +0100 by jahier · 010423f4
      Erwan Jahier authored
      Parent-Version:      0.22
      Version-Log:
      
      Add a bdd-based boolean solver to draw inside formula.
      
      Also remove several module opening and use explicit module
      qualification instead
      
      lurette.ml:
      env_state.ml:
          Define a function in env.ml to get the list of input and outputs var names
          and use it in lurette.ml
      
      env_state.ml:
          Add several fields to the env_state structure:
          * node_to_file_name: to be able to retrieve the list of vars that
            ougth to be generated from a list of nodes (Indeed, some vars
            that should be tossed up do no necessarily appear in formula; and
            once the whole bdd has been traversed for the draw, we need to be able
            to know what variable are still to be drawn).
          * var_name_to_index and index_to_var_name: to index output and local
            variable names. Indeed, the bdd library we use manipulates var as int,
            not string.
          * bdd_tbl: be cause transforming a formula into a bdd is expensive,
            we store the result of this transformation in a table.
      
          Define the var_names field as an Hashtbl instead of a list for homogeneity.
      
          Define functions that retrieve the list of input (resp output and local)
          vars from env_state to avois code duplication.
      
      env.ml:
          Initialize the new fields of env_state.
      
      util.ml:
      util.mli:
          Add a new function that computes the intersection of 2 lists.
      
      solver.ml:
          Implement a real boolean solver using bdds.
      
      Project-Description: Lurette
      010423f4
    • Erwan Jahier's avatar
      lurette 0.20 Thu, 06 Dec 2001 16:10:48 +0100 by jahier · 8e21b389
      Erwan Jahier authored
      Parent-Version:      0.19
      Version-Log:
      
      Just a couple of cosmetic changes.
      
      Project-Description: Lurette
      8e21b389
    • Erwan Jahier's avatar
      lurette 0.18 Thu, 06 Dec 2001 12:40:09 +0100 by jahier · e95202e8
      Erwan Jahier authored
      Parent-Version:      0.17
      Version-Log:
       Handle pre in formula and expressions. Also add (in
      green) the environment local vars in the sim2chro output.
      
      Project-Description: Lurette
      e95202e8
    • Erwan Jahier's avatar
      lurette 0.14 Mon, 03 Dec 2001 12:45:17 +0100 by jahier · d22646a1
      Erwan Jahier authored
      Parent-Version:      0.13
      Version-Log:
      
      Now lurette can hanble multiple environements that can either be
      run as a product or in parallel.
      Project-Description: Lurette
      d22646a1