Skip to content

How do we track constant parameters? #174

@joergi-w

Description

@joergi-w

Some parameters we don't want to expose to the user for several reasons:

  1. in order to simplify the interface
  2. sometimes there are optimal/useful values and users could rather do "mistakes" there
  3. they are dependent on other parameters or user input

We still want to track, which constants we are defining for our algorithms. Here are ideas and [dis]advantages:

  • define locally and document in the GitHub wiki:
    (-) needs to be maintained and can possibly get outdated, website lookup/maintenance is more effort than code documentation, we need a structure ("parameters for algorithm A", possibly links to the code (even more maintenance effort))
    (+) parameter only exists locally only where it is needed, can be found and modified quickly in the beginning of the respective function, easier to track where in iGenVar a parameter is actually used
  • define as constants in the cmd_arguments struct and document there:
    (-) the values must be passed as parameters to all the respective functions, longer parameter lists of the functions with also longer (redundant) parameter documentation, unnecessary copies of constant values, more #include needed, one needs to know where to look them up, danger of unused parameters if functions are deleted
    (+) central view on all parameters in iGenVar.hpp (they are not related, so is this really useful?), easier documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions