Operations: * integer types * [ ] `clz` count leading zeroes * [ ] `ctz` count trailing zeroes * [ ] `popcnt` population count * [ ] `rotl` and `rotr` bitwise rotation * floating-point types * [ ] `abs` absolute value * [ ] `ceil` ceiling * [ ] `floor` floor * [ ] `trunc` * [ ] `nearest` * [ ] `sqrt` * [ ] `min` minimum (two args) * [ ] `max` maximum (two args) * [ ] `copysign` (two args) Syntax possibilities: * Method: `foo.count_leading_zeroes()` * Global: `count_leading_zeroes(foo)` Or maybe we should adopt a [uniform function call syntax](https://en.wikipedia.org/wiki/Uniform_function_call_syntax) that makes the difference not matter?
Operations:
clzcount leading zeroesctzcount trailing zeroespopcntpopulation countrotlandrotrbitwise rotationabsabsolute valueceilceilingfloorfloortruncnearestsqrtminminimum (two args)maxmaximum (two args)copysign(two args)Syntax possibilities:
foo.count_leading_zeroes()count_leading_zeroes(foo)Or maybe we should adopt a uniform function call syntax that makes the difference not matter?