Skip to content

WIP: New Functors

Florian Lemaitre requested to merge flemaitr_functors into master

DISCLAIMER

This is a proof of concept. It is a merge request only to start discussions.

Why new functors?

The main idea behind these new functors is to optimize them as much as possible by compiling them directly when defined (both in a header or in python configuration file).

What is possible with them?

It is basically possible to do any operation you want on them. All operators are overloaded (except ++, -- and []). Composition is also supported with the function compose.

What is done so far?

  • C++ template core
  • C++ type erased wrapper
  • Functors are fully optimized (both inlining and type size)
  • interface with root to compile on the fly
  • interface with python
  • simple examples
  • documentation
  • consider operator precedence for printing

What remains to be done?

  • comments
  • optimize the AST
  • better error messages
Edited by Florian Lemaitre

Merge request reports