gituliar / fuchsia

A tool for reducing differential equations for Feynman master integrals to an epsilon form.
http://gituliar.net
ISC License
14 stars 5 forks source link

CLI issues #4

Closed magv closed 8 years ago

magv commented 8 years ago

Here are some of the issues with bin/delirium tool:

  1. There's no way to save the transformation matrix. We'll need two separate output options, one for each of the resulting matrices. By default we could print both into stdout. Or, print one into stdout and the other one into /dev/null. How about -m and -t options? Also, how do we call the m matrix in plain English?
  2. There's no way to set the name of the x variable. We could use -x option for this. As for the epsilon variable, we could read in the input matrix, check that is has no more than two variables in it, and let the other variable (whatever it is) be the epsilon. We could additionally use an explicit -e option for this, although I don't see the need.
  3. The tool depends on docopt-dispatch, which is not a part of Sage distribution. We've already dropped pytest for this reason; we'll need to do the same for docopt-dispatch.
  4. The default mode of operation (that is, without any commands) should be the full transformation (reduction, normalization, factorization). This will unfortunately mean that we'll need to rename reduce and normalize keywords into --reduce and --normalize.
  5. Do you want to keep the Maple parts for now? They are sort of confusing (what does a "polinomial in x [default: x]" signify?), and don't generally fit with the rest of the tool. I'd remove them.

Oleksandr, if you're OK with these changes, I can implement them.

gituliar commented 8 years ago

Right, that make sense. Though for the moment, please, keep docopt and Maple parts. As for the other changes feel free to implement them.

magv commented 8 years ago

Is there a point in keeping docopt_dispatch? I don't really need it to implement these changes.

gituliar commented 8 years ago

By default we could print both into stdout. Or, print one into stdout and the other one into /dev/null. How about -m and -t options?

Require -m and -t options to be rpovided explicitely, with no default output to sdout or other streams.

Also, how do we call the m matrix in plain English?

I never saw people use some particular term for this matrix. The term "the matrix m" is good enough for me, if you have no better ideas.

The default mode of operation (that is, without any commands) should be the full transformation (reduction, normalization, factorization).

I would prefer to stick to the current workflow with separate command for every (of three) operation that should be fine. This is supposed to be a research tool, so that users also could play with it by changing/tuning some options and parameters; let us ommit one-button-press-solves-everything approach.

Is there a point in keeping docopt_dispatch?

It is simple and I like it, so please leave it as it is now. Instead, please, dedicate your time and effort to solve real problems and not to rewrite existing packages.

magv commented 8 years ago

It is simple and I like it, so please leave it as it is now.

OK, let me put it another way: it is inconvenient for me to install docopt_dispatch, and it will be doubly inconvenient for our users to install it (just as it was with pytest). I can modify the CLI not to require it and use getopt instead. All you need to do is say "yes".

magv commented 8 years ago

Closing this due to 3f0677b2813abf103063ea5a9e950179bc91800c.