Please give a global summary at the beginning of the loop such as (based on my current understanding):

```
# Sample up to max_features without replacement using a Fisher-Yates-based
# algorithm (using the local variables `f_i` and `f_j` yo compute a permutation of
# the `features` array).
# Skip the CPU intensive evaluation of the impurity criterion for features that were
# already detected as constant (hence not suitable for good splitting) by ancestor
# nodes and save the information on newly discovered constant features to spare
# computation on child nodes.
```