Skip to content
This repository has been archived by the owner on Sep 26, 2022. It is now read-only.

Performance Optimizations and additional Features in invesdwin-util fork #21

Open
subes opened this issue Dec 22, 2018 · 0 comments
Open

Comments

@subes
Copy link

subes commented Dec 22, 2018

Hi,

thanks a lot for this great expression parser. I did some magic on it here: https://github.com/subes/invesdwin-util/tree/master/invesdwin-util/src/main/java/de/invesdwin/util/math/expression

This is essentially a fork that adds the following improvements:

  • time series support via FDate and int indexed evaluation in addition to no-key variation as exists here
  • [x] operator for accessing previous values via index/expression (IPreviousKeyFunction needs to be provided for this feature), works on variables and functions by just modifying the key for evaluation
  • prefer final and immutability where possible
  • remove scope and instead allow overriding getVariable and getFunction methods
  • redirect functions to variables and vice versa where possible
  • crosses under/crosses above/not operators
  • efficient boolean expression processing including skipping unnecessary evaluations
  • remove unneeded features from tokenizer and improve overall tokenizer performance

I felt the modifications were too much to create pull requests, so instead I did a major rewrite of most parts and published the results in invesdwin-util. I might find more improvements which I will also make public in that repo.

You might be able to pick some of those improvements and reintegrate them in parsii. Otherwise you can just close this issue since I just wanted to inform you about the performance improvements that are still available.

Best regards,
Edwin

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant