Changes between Version 1 and Version 5 of Ticket #24500


Ignore:
Timestamp:
01/30/18 13:57:01 (4 years ago)
Author:
jdemeyer
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #24500

    • Property Status changed from new to needs_review
    • Property Authors changed from to Jeroen Demeyer
    • Property Component changed from performance to coercion
    • Property Summary changed from Optimize Action.__call__ to Implement action using _act_ instead of _call_
    • Property Dependencies changed from to #5574
    • Property Branch changed from to u/jdemeyer/optimize_action___call__
    • Property Commit changed from to f2b676ef4e7b13eb4e14f117d39afb8b06ebdc03
  • Ticket #24500 – Description

    v1 v5  
    1 Work on #24247 shows that a significant amount of time is spent in `Action.__call__`. This should be optimized.
     1We change the internal API of `Action`: instead of a `_call_` method, we implement an `_act_` method which always take `(g, x)` as arguments, where `g` is the acting element and `x` is the acted-on element.
    22
    3 We should also consider whether the current `_call_` API is optimal: maybe an `_act_(g, s)` method where `g` always acts on `s` would be better because now every `_call_` method has to figure out whether it's a left or right action.
     3The current implementation using `_call_` takes a left and right argument. This is less efficient because many actions can be left or right actions. This means that every `_call_` method needs to "decode" its arguments as `g` and `x`.
    44
    5 Whatever we do, we should document things as currently there is no documentation of `Action`.
     5Work on #24247 shows that a significant amount of time is spent in `Action.__call__`. This ticket optimizes that quite a bit. It also adds documentation to `Action`.