Looks like bfloat16 quantiles don't provide a way to specify the weight:

```sql
SELECT quantileBFloat16Weighted(0.5)(number, number)
FROM numbers(100)

Received exception from server (version 21.8.3):
Code: 46. DB::Exception: Received from localhost:9000. DB::Exception: Unknown function quantileBFloat16Weighted
```

But I expect it to work the same way as tdigest:

```sql
SELECT quantileTDigestWeighted(0.5)(number, number)
FROM numbers(100)

Query id: ea66ede3-afc6-4e5d-8949-2da5970e1349

┌─quantileTDigestWeighted(0.5)(number, number)─┐
│                                     70.35461 │
└──────────────────────────────────────────────┘
```

/cc @RedClusive just in case :)
size_t old_size = data_to.size();
                data_to.resize(data_to.size() + size);
                data.getManyFloat(levels.levels.data(), levels.permutation.data(), size, data_to.data() + old_size);
            }
            else
            {
                auto & data_to = static_cast<ColVecType &>(arr_to.getData()).getData();
                size_t old_size = data_to.size();
                data_to.resize(data_to.size() + size);
                data.getMany(levels.levels.data(), levels.permutation.data(), size, data_to.data() + old_size);
            }
        }
        else
        {
            if constexpr (returns_float)
                assert_cast<ColumnVector<FloatReturnType> &>(to).getData().push_back(data.getFloat(level));
            else
                static_cast<ColVecType &>(to).getData().push_back(data.get(level));
        }
    }
    static void assertSecondArg(const DataTypes & types)
    {
        if constexpr (has_second_arg)
        {
            assertBinary(Name::name, types);
            if (!isUnsignedInteger(types[1]))
                throw Exception("Second argument (weight) for function " + std::string(Name::name) + " must be unsigned integer, but it has type " + types[1]->getName(), ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
        }
        else
            assertUnary(Name::name, types);