You paint a very bleak and incorrect picture of the HLS tool. I will suggest that you need to get some training on its use. Xilinx have many examples and their documentation is quite good. Document UG902 clearly documents the HLS math library which supports all manner of synthesizable operations. For instance:
Trigonometric Functions: acos, atan, cospi, acospi, atan2, sin, asin, atan2pi, sincos, asinpi, cos, sinpi, tan, tanpi
Hyperbolic Functions: acosh, asinh, cosh, atanh, sinh, tanh
Exponential Functions: exp, exp10, exp2, expm1, frexp, idexp, modf
Logarithmic Functions: ilogb, log, log10, log1p
Power Functions: cbrt, hypot, pow, rsqrt, sqrt
Error Functions: erf, erfc
Gamma Functions: lgamma, lgamma_r, tgamma
Rounding Functions: ceil, floor, llrint, llround, lrint, lround, nearbyint, rint, round, trunc
and that's only a few.
Perhaps your grasp of C++ and what can or cannot be synthesized is limited. For instance, dynamically allocated memory is forbidden because it is not reasonable to expect silicon to grow new logic during operation.
Please read the fine manual (RTFM).