use transformation operators to allow more general transformations
this replaces the previously assumed array format. dealing with issue #1 (closed).
barycentric transformations are being represented by their own operator classes (depending on the transformation format in use).
NOTE: all current tests are passing
NOTE: decided for the name "transformation operator". "transformation matrix" would be misleading and not general enough since e.g. the barycentric transformation are not (really) matrices.
remaining TODOs: (created separate issues for this)
- chaining multiple operators elegantly (especially the barycentric trafos, currently workaround with MatrixOp(a.to_array() @ b.to_array())
- functionality for inverting operators. discuss usefulness
- module structure: barycentric fcts, operators and trafo matrix computation fcts are scattered in multiple modules -> clean up
- decide upon the fate of the MultiIndexTree class
Edited by Jannik Michelfeit