Skip to content

Distinguish the notion of multi-indices completeness and downward-closedness.

Damar Wicaksono requested to merge dev-105 into dev

The notion of completeness and downward-closedness of MultiIndexSet instances is now distinguished. Prior to this commit, the notion of completeness was confused with the notion of downward-closedness (prior: "lexicographically complete"). Completeness is defined with respect to a particular polynomial degree and lp-degree, such that all indices satisfy the lp-norm condition. Downward-closedness, on the other hand, is defined for a multi-index set that does not contain lexicographical "holes", without any reference to a particular polynomial degree and lp-degree.

This distinction is reflected by two properties: is_complete (completeness check) and is_downward_closed (downward-closedness check). The property is_complete is already in the code base prior to this commit, but was a misnomer as it actually checked for downward-closedness/lexicographically complete. These properties are lazily evaluated.

This commit should resolve Issue #105 (closed).

Several additional changes:

  • The utility function minterpy.core.utils.is_lexicographically_complete() is now renamed to minterpy.core.utils.is_downward_closed() to be consistent with how it is used in the MultiIndexSet property.
  • The utility function minterpy.core.utils.is_complete() is introduced for exclusively checking for completeness. The current implementation is memory intensive because it must create the whole complete set for comparison. However, this property is not crucial for Minterpy as a whole because only downward-closedness is required (say, in DDS).
  • Relevant occurences of is_complete are replaced with is_downward_closed across the code base.
  • The test suite is extended to include the tests related to the utility functions as well as the new properties.
  • The in-code documentation for the utility functions as well as the properties is updated.

Merge request reports

Loading