Suppose I have a function that log transforms a vector, multiplied by a constant, thus I defines a function that maps, given the vector, and the constant....

```
vector<double> logtransform(vector<double> &data, int constant){
    vector<double> image;
    for (int i = 0; i < data.size(); i++){
        image.push_back(constant*log(data[i]));
    }
    return image;
}

```

Given a vector named "data", I need to apply the function "logtransform" for varying number of constants, contained in an array of doubles, but how can I use multithreading to execute that function at the same time if the function is not a void type?