+ ScalingWeights ret;
+ ret.src_bilinear_samples = src_samples;
+ ret.dst_samples = dst_samples;
+ ret.num_loops = num_loops;
+ ret.bilinear_weights_fp16 = nullptr;
+ ret.bilinear_weights_fp32 = move(weights);
+ return ret;
+}
+
+} // namespace
+
+ScalingWeights calculate_bilinear_scaling_weights(unsigned src_size, unsigned dst_size, float zoom, float offset)
+{
+ ScalingWeights ret = calculate_scaling_weights(src_size, dst_size, zoom, offset);
+ unique_ptr<Tap<float>[]> weights = move(ret.bilinear_weights_fp32);
+ const int src_samples = ret.src_bilinear_samples;
+