We only need:

    fvar<T>
    pow(const fvar<T>& x1,
        const fvar<T>& x2);

The general principle is that we only need instantiations
that get created from the autodiff.hpp file's functionals.
Those represent how we actually use auto-diff.

It's possible to add a bit more generality, but we're
never going to be creating an fvar<double> and fvar<float>
that we have to operate on.  Similarly, we won't create
fvar<var> and fvar<double> instances.

- Bob

On 5/28/13 10:39 AM, Peter Li wrote:
> In src/stan/agrad/fwd/pow.hpp:
>
>> @@ -13,8 +16,25 @@
>>      fvar<typename stan::return_type<T1,T2>::type>
>>      pow(const fvar<T1>& x1, const T2& x2) {
>
> So we don't want pow(const fvar& x1, const fvar& x2)?
>
> —
> Reply to this email directly or view it on GitHub <https://github.com/stan-dev/stan/pull/92/files#r4414011>.
>