phillipstanleymarbell / Noisy-lang-compiler

Noisy language compiler
MIT License
17 stars 1 forks source link

Create a new pass to convert the Pi groups computed by dimensional matrix analysis into a canonical form #372

Open phillipstanleymarbell opened 6 years ago

phillipstanleymarbell commented 6 years ago

Create a new pass to convert the Pi groups computed by dimensional matrix analysis into a canonical form and to weed out duplicate kernels:

This pass would ideally be run before the pass being implemented by #358 and #359 (and ideally also run before #354). It however need not be implemented immediately since its effect is not needed for correctness of #358 or #354.

This would likely be best done using Eigen, so I can see its implementation residing in newton-eigenLibraryInterface.cpp, e.g., after newtonEigenLibraryInterfaceGetPiGroups(), but being called from a new irPass file (e.g., newton-irPass-dimensionalMatrixPiGroupCanonicalization.c), in much the same way newton-irPass-dimensionalMatrixPiGroups.c is just a wrapper to call newtonEigenLibraryInterfaceGetPiGroups. This will allow us to also cleanly enable it or not using flags.

Siegfriedchao commented 5 years ago

This issue has been further enhanced/modified, see #383 and #384. This pass should now be able to sort the labels of parameters lexicographically and return a reordered null space. The weed out has now been moved to #384.

Siegfriedchao commented 5 years ago

Typo in commit 9071a56: should be "moving on to #383 and #384"

phillipstanleymarbell commented 5 years ago

This is merged. Moving to verify.