[CHANGE] Rename point to ParamT, use column vector and add enum.
[CHANGE] Rename functions and change std::vector to C array.
[CHANGE] Optimization - store f(x) to reduce re-calculation.