szn is header-only now because that is much more convenient
fix naming for optimized compilation with GCC