In the manual, I did not find element wise power function for array or matrix.

Thatâ€™s correctâ€”itâ€™s not implemented. It is on our to-do list.

Also, I changed the tag from `Developrs`

to `Modeling`

as this isnâ€™t a topic about Stan development.

Writing your own function to do it in a loop wonâ€™t be any slower than the way we do the vectorization right now. Weâ€™ll eventually get around to elminating a bunch of virtual function calls in the elementwise functions, but we donâ€™t do that yet for anything other than the probability density and mass functions.

Thanks Bob.

I think we can do exp(2.5*log(abs(A))) for array A to obtain A[i]^2.5.

Thatâ€™s clever, but itâ€™ll be less efficient than the loop with the call to `pow()`

. Stanâ€™s loops are efficient. And all `log(v)`

for a vector `v`

does is create a loop. So when you do this:

```
vector<lower = 0>[K] v;
...
vector[K] log_v = log(v);
```

It does the same thing both in terms of results and effiicency as:

```
vector[K] log_v;
for (k in 1:K)
log_v[k] = log(v[k]);
```

The problem with using three operations (exp, multiply, and log) is that it creates a bigger expression graph to autodiff, so itâ€™ll be slower.

P.S. Iâ€™m not sure about the `abs`

â€”isnâ€™t x^{2.5} only real-valued when x is positive

Yes, you are right.

I just use ^2.5 as an example.

My case is just ^2, for which I consider

A .* A

Thanks.

Depending on what you want to do with the result, we also have functions like

```
dot_self(v) = sum(v .* v)
```

In fact, `-0.5 * dot_self(y)`

is an efficient way to implement the log standard normal density.

Good idea.

Thank you.