#include <cmath>
#include <iostream>

double* get_unit_vec(double vector[3])
{
    double magnitude = std::sqrt(std::pow(vector[0], 2) + std::pow(vector[1], 2) + std::pow(vector[2], 2));
    double *result = new double[3]{vector[0] / magnitude,vector[1] / magnitude,vector[2] / magnitude};
    return result;
}

int main()
{
    std::cout << "Test the get_unit_vec funtion:\n";
    double vector[3] = {4.0,6.0,8.0};
    double *unit_vec = get_unit_vec(vector);
    std::cout << "old x: " << vector[0] << " new x: " << unit_vec[0] << "\n";
    std::cout << "old y: " << vector[1] << " new y: " << unit_vec[1] << "\n";
    std::cout << "old z: " << vector[2] << " new z: " << unit_vec[2] << "\n";
    std::cout << "old length: " << std::sqrt(std::pow(vector[0], 2) + std::pow(vector[1], 2) + std::pow(vector[2], 2)) <<" new length: " << std::sqrt(std::pow(unit_vec[0], 2) + std::pow(unit_vec[1], 2) + std::pow(unit_vec[2], 2)) << "\n";
    delete[] unit_vec;
}