JuliaDiff / ForwardDiff.jl

Forward Mode Automatic Differentiation for Julia
Other
892 stars 145 forks source link

Turn StaticArrays into an Extension Package #625

Closed ChrisRackauckas closed 1 year ago

ChrisRackauckas commented 1 year ago

omg so fast!

ChrisRackauckas commented 1 year ago

https://github.com/JuliaDiff/ForwardDiff.jl/pull/617 might be better since not using the Requires is a simpler v1.8 handling

ChrisRackauckas commented 1 year ago

Nevermind, that has merge conflicts on the backport branch, so I'll just make this use the non-Requires version.

ChrisRackauckas commented 1 year ago

This is pretty much the same as https://github.com/JuliaDiff/ForwardDiff.jl/pull/617 but setup for the release-0.10 backport branch, as v0.11-dev has a bunch of odd extra stuff. I'd hope to just get this out there since it's not a functional difference but is a strong improvement to load times.

mcabbott commented 1 year ago

Isn't the right thing to merge https://github.com/JuliaDiff/ForwardDiff.jl/pull/617 (by any name) onto master, and then backport it?

ChrisRackauckas commented 1 year ago

That seems way more difficult than just doing the move on the v0.10 branch, given that the diff is large enough that it's hard to see what had changed already. This is pretty dead simple, just moving where the code is to a new file and module. If the other way is done correctly, then someone would just have to manually revert any v0.11 change in each of the functions, which would give you the same result as just using the v0.10 branch if done correctly (but would be a lot more error prone of course).

ChrisRackauckas commented 1 year ago

The same nightly failure is on master: https://github.com/JuliaDiff/ForwardDiff.jl/pull/626

ChrisRackauckas commented 1 year ago

Also on the release branch: https://github.com/JuliaDiff/ForwardDiff.jl/pull/627 , so this looks complete.

Squashing.

codecov-commenter commented 1 year ago

Codecov Report

Base: 87.18% // Head: 87.18% // No change to project coverage :thumbsup:

Coverage data is based on head (bc3a395) compared to base (eb8d755). Patch coverage: 98.83% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

Additional details and impacted files ```diff @@ Coverage Diff @@ ## release-0.10 #625 +/- ## ============================================= Coverage 87.18% 87.18% ============================================= Files 9 10 +1 Lines 905 905 ============================================= Hits 789 789 Misses 116 116 ``` | [Impacted Files](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff) | Coverage Δ | | |---|---|---| | [src/apiutils.jl](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff#diff-c3JjL2FwaXV0aWxzLmps) | `100.00% <ø> (ø)` | | | [src/dual.jl](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff#diff-c3JjL2R1YWwuamw=) | `80.53% <ø> (-0.52%)` | :arrow_down: | | [src/gradient.jl](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff#diff-c3JjL2dyYWRpZW50Lmps) | `98.63% <ø> (-0.28%)` | :arrow_down: | | [src/hessian.jl](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff#diff-c3JjL2hlc3NpYW4uamw=) | `100.00% <ø> (+2.56%)` | :arrow_up: | | [src/jacobian.jl](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff#diff-c3JjL2phY29iaWFuLmps) | `99.13% <ø> (-0.19%)` | :arrow_down: | | [ext/ForwardDiffStaticArraysExt.jl](https://codecov.io/gh/JuliaDiff/ForwardDiff.jl/pull/625?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff#diff-ZXh0L0ZvcndhcmREaWZmU3RhdGljQXJyYXlzRXh0Lmps) | `98.83% <98.83%> (ø)` | | Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaDiff)

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

ChrisRackauckas commented 1 year ago

Anything left?

mcabbott commented 1 year ago

Am in favour of extensions, but against setting up a competition between two branches as to what's latest.

Master should get the extension first, then the backport 0.10 branch (if & when someone is inspired) rather than hoping someone will later update master to catch up.

How this is most easily performed is a detail. Perhaps it means pushing to https://github.com/JuliaDiff/ForwardDiff.jl/pull/617 any changes to extension best practice since that was opened, and calling this PR the backport of that.

ChrisRackauckas commented 1 year ago

I rebased https://github.com/JuliaDiff/ForwardDiff.jl/pull/617 in https://github.com/JuliaDiff/ForwardDiff.jl/pull/628. That's the v0.11 version. I also put a commit in here so that the functions are in the same order here and there. It should be the same "exact" change to both versions. Let me know if anything else is needed.

ChrisRackauckas commented 1 year ago

Diffs look the same side by side.

ChrisRackauckas commented 1 year ago

No objections from anyone? Speak up by Friday?

ChrisRackauckas commented 1 year ago

Thanks for double checking. I checked locally and v1.9 is fine:

       ...auto-testing SpecialFunctions.besselhx with 2 arguments
       ...auto-testing Base.cosd with 1 arguments
       ...auto-testing SpecialFunctions.loggamma with 1 arguments
       ...auto-testing Base.mod2pi with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprimex with 1 arguments
       ...auto-testing LogExpFunctions.logistic with 1 arguments
       ...auto-testing LogExpFunctions.log2mexp with 1 arguments
       ...auto-testing Base.cosh with 1 arguments
       ...auto-testing NaNMath.sin with 1 arguments
       ...auto-testing SpecialFunctions.besseli with 2 arguments
       ...auto-testing Base.exp10 with 1 arguments
       ...auto-testing Base.+ with 2 arguments
       ...auto-testing Base.acot with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprime with 1 arguments
       ...auto-testing Base.atan with 2 arguments
       ...auto-testing LogExpFunctions.xlogy with 2 arguments
       ...auto-testing SpecialFunctions.airybix with 1 arguments
       ...auto-testing LogExpFunctions.xlogx with 1 arguments
       ...auto-testing LogExpFunctions.logmxp1 with 1 arguments
       ...auto-testing NaNMath.sqrt with 1 arguments
       ...auto-testing Base.acoth with 1 arguments
       ...auto-testing Base.abs with 1 arguments
       ...auto-testing Base.* with 2 arguments
       ...auto-testing Base.tanh with 1 arguments
       ...auto-testing SpecialFunctions.besselyx with 2 arguments
       ...auto-testing Base.coth with 1 arguments
       ...auto-testing Base.max with 2 arguments
       ...auto-testing Base.atan with 1 arguments
       ...auto-testing NaNMath.log10 with 1 arguments
       ...auto-testing Base.exp with 1 arguments
       ...auto-testing NaNMath.lgamma with 1 arguments
       ...auto-testing NaNMath.acos with 1 arguments
       ...auto-testing SpecialFunctions.besselk with 2 arguments
       ...auto-testing LogExpFunctions.log1pexp with 1 arguments
       ...auto-testing Base.atand with 1 arguments
       ...auto-testing NaNMath.asin with 1 arguments
       ...auto-testing Base.sec with 1 arguments
       ...auto-testing LogExpFunctions.log1mexp with 1 arguments
       ...auto-testing SpecialFunctions.logerfc with 1 arguments
       ...auto-testing Base.acscd with 1 arguments
       ...auto-testing Base.acotd with 1 arguments
       ...auto-testing Base.asecd with 1 arguments
       ...auto-testing Base.\ with 2 arguments
       ...auto-testing SpecialFunctions.airybi with 1 arguments
       ...auto-testing SpecialFunctions.sinint with 1 arguments
       ...auto-testing Base.secd with 1 arguments
       ...auto-testing SpecialFunctions.beta with 2 arguments
       ...auto-testing SpecialFunctions.hankelh2x with 2 arguments
       ...auto-testing LogExpFunctions.logsubexp with 2 arguments
       ...auto-testing Base.log10 with 1 arguments
       ...auto-testing Base.sech with 1 arguments
       ...auto-testing SpecialFunctions.invdigamma with 1 arguments
       ...auto-testing SpecialFunctions.trigamma with 1 arguments
       ...auto-testing Base.sinh with 1 arguments
       ...auto-testing SpecialFunctions.cosint with 1 arguments
       ...auto-testing SpecialFunctions.besselkx with 2 arguments
       ...auto-testing Base.cot with 1 arguments
       ...auto-testing SpecialFunctions.airybiprimex with 1 arguments
       ...auto-testing SpecialFunctions.logerfcx with 1 arguments
       ...auto-testing Base.hypot with 2 arguments
       ...auto-testing Base.csc with 1 arguments
       ...auto-testing NaNMath.log1p with 1 arguments
       ...auto-testing Base.csch with 1 arguments
       ...auto-testing SpecialFunctions.besselj1 with 1 arguments
       ...auto-testing NaNMath.atanh with 1 arguments
       ...auto-testing SpecialFunctions.erfi with 1 arguments
       ...auto-testing Base.rem with 2 arguments
       ...auto-testing SpecialFunctions.besselj with 2 arguments
       ...auto-testing NaNMath.acosh with 1 arguments
       ...auto-testing Base.mod with 2 arguments
       ...auto-testing LogExpFunctions.logit with 1 arguments
       ...auto-testing LogExpFunctions.xlog1py with 2 arguments
       ...auto-testing Base.log2 with 1 arguments
       ...auto-testing Base.log1p with 1 arguments
       ...auto-testing Base.exp2 with 1 arguments
       ...auto-testing SpecialFunctions.besselj0 with 1 arguments
       ...auto-testing LogExpFunctions.logexpm1 with 1 arguments
       ...auto-testing Base.log with 1 arguments
       ...auto-testing NaNMath.log with 1 arguments
       ...auto-testing SpecialFunctions.hankelh2 with 2 arguments
       ...auto-testing SpecialFunctions.ellipk with 1 arguments
       ...auto-testing NaNMath.pow with 2 arguments
       ...auto-testing SpecialFunctions.erf with 2 arguments
       ...auto-testing Base.asin with 1 arguments
       ...auto-testing Base.acosh with 1 arguments
       ...auto-testing Base.sind with 1 arguments
       ...auto-testing NaNMath.log2 with 1 arguments
       ...auto-testing SpecialFunctions.airybiprime with 1 arguments
       ...auto-testing Base.cospi with 1 arguments
       ...auto-testing NaNMath.cos with 1 arguments
       ...auto-testing LogExpFunctions.log1psq with 1 arguments
       ...auto-testing SpecialFunctions.erf with 1 arguments
       ...auto-testing SpecialFunctions.dawson with 1 arguments
       ...auto-testing Base.sin with 1 arguments
       ...auto-testing Base.deg2rad with 1 arguments
       ...auto-testing SpecialFunctions.bessely0 with 1 arguments
       ...auto-testing Base.acsch with 1 arguments
       ...auto-testing SpecialFunctions.airyaix with 1 arguments
       ...auto-testing Base.cos with 1 arguments
       ...auto-testing SpecialFunctions.erfcinv with 1 arguments
       ...auto-testing SpecialFunctions.zeta with 2 arguments
       ...auto-testing SpecialFunctions.erfinv with 1 arguments
       ...auto-testing LogExpFunctions.log1pmx with 1 arguments
       ...auto-testing LogExpFunctions.logaddexp with 2 arguments
       ...auto-testing Base.asech with 1 arguments
       ...auto-testing SpecialFunctions.bessely with 2 arguments
  ...testing Dual{TestTag(),Int64,0} and Dual{TestTag(),Dual{TestTag(),Int64,4},0}
  ...testing Dual{TestTag(),Float32,0} and Dual{TestTag(),Dual{TestTag(),Float32,4},0}
       ...auto-testing Base.expm1 with 1 arguments
       ...auto-testing Base.acos with 1 arguments
       ...auto-testing Base.cotd with 1 arguments
       ...auto-testing Base.sinpi with 1 arguments
       ...auto-testing Base.min with 2 arguments
       ...auto-testing Base.sqrt with 1 arguments
       ...auto-testing Base.asinh with 1 arguments
       ...auto-testing SpecialFunctions.gamma with 1 arguments
       ...auto-testing SpecialFunctions.hankelh1 with 2 arguments
       ...auto-testing SpecialFunctions.erfcx with 1 arguments
       ...auto-testing Base.tand with 1 arguments
       ...auto-testing Base.+ with 1 arguments
       ...auto-testing Base.^ with 2 arguments
       ...auto-testing Base.asec with 1 arguments
       ...auto-testing SpecialFunctions.ellipe with 1 arguments
       ...auto-testing SpecialFunctions.besseljx with 2 arguments
       ...auto-testing SpecialFunctions.polygamma with 2 arguments
       ...auto-testing Base.abs2 with 1 arguments
       ...auto-testing Base.sinc with 1 arguments
       ...auto-testing SpecialFunctions.hankelh1x with 2 arguments
       ...auto-testing Base.acosd with 1 arguments
       ...auto-testing Base.acsc with 1 arguments
       ...auto-testing SpecialFunctions.bessely1 with 1 arguments
       ...auto-testing Base.log with 2 arguments
       ...auto-testing SpecialFunctions.besselix with 2 arguments
       ...auto-testing NaNMath.tan with 1 arguments
       ...auto-testing Base.cbrt with 1 arguments
       ...auto-testing Base.inv with 1 arguments
       ...auto-testing SpecialFunctions.erfc with 1 arguments
       ...auto-testing Base.tan with 1 arguments
       ...auto-testing SpecialFunctions.digamma with 1 arguments
       ...auto-testing Base.ldexp with 2 arguments
       ...auto-testing Base.cscd with 1 arguments
       ...auto-testing Base.- with 1 arguments
       ...auto-testing Base.atanh with 1 arguments
       ...auto-testing Base.rad2deg with 1 arguments
       ...auto-testing SpecialFunctions.airyai with 1 arguments
       ...auto-testing NaNMath.max with 2 arguments
       ...auto-testing SpecialFunctions.logbeta with 2 arguments
       ...auto-testing NaNMath.min with 2 arguments
       ...auto-testing Base.asind with 1 arguments
       ...auto-testing Base.- with 2 arguments
       ...auto-testing SpecialFunctions.besselh with 2 arguments
       ...auto-testing SpecialFunctions.besselhx with 2 arguments
       ...auto-testing Base.cosd with 1 arguments
       ...auto-testing SpecialFunctions.loggamma with 1 arguments
       ...auto-testing Base.mod2pi with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprimex with 1 arguments
       ...auto-testing LogExpFunctions.logistic with 1 arguments
       ...auto-testing LogExpFunctions.log2mexp with 1 arguments
       ...auto-testing Base.cosh with 1 arguments
       ...auto-testing NaNMath.sin with 1 arguments
       ...auto-testing SpecialFunctions.besseli with 2 arguments
       ...auto-testing Base.exp10 with 1 arguments
       ...auto-testing Base.+ with 2 arguments
       ...auto-testing Base.acot with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprime with 1 arguments
       ...auto-testing Base.atan with 2 arguments
       ...auto-testing LogExpFunctions.xlogy with 2 arguments
       ...auto-testing SpecialFunctions.airybix with 1 arguments
       ...auto-testing LogExpFunctions.xlogx with 1 arguments
       ...auto-testing LogExpFunctions.logmxp1 with 1 arguments
       ...auto-testing NaNMath.sqrt with 1 arguments
       ...auto-testing Base.acoth with 1 arguments
       ...auto-testing Base.abs with 1 arguments
       ...auto-testing Base.* with 2 arguments
       ...auto-testing Base.tanh with 1 arguments
       ...auto-testing SpecialFunctions.besselyx with 2 arguments
       ...auto-testing Base.coth with 1 arguments
       ...auto-testing Base.max with 2 arguments
       ...auto-testing Base.atan with 1 arguments
       ...auto-testing NaNMath.log10 with 1 arguments
       ...auto-testing Base.exp with 1 arguments
       ...auto-testing NaNMath.lgamma with 1 arguments
       ...auto-testing NaNMath.acos with 1 arguments
       ...auto-testing SpecialFunctions.besselk with 2 arguments
       ...auto-testing LogExpFunctions.log1pexp with 1 arguments
       ...auto-testing Base.atand with 1 arguments
       ...auto-testing NaNMath.asin with 1 arguments
       ...auto-testing Base.sec with 1 arguments
       ...auto-testing LogExpFunctions.log1mexp with 1 arguments
       ...auto-testing SpecialFunctions.logerfc with 1 arguments
       ...auto-testing Base.acscd with 1 arguments
       ...auto-testing Base.acotd with 1 arguments
       ...auto-testing Base.asecd with 1 arguments
       ...auto-testing Base.\ with 2 arguments
       ...auto-testing SpecialFunctions.airybi with 1 arguments
       ...auto-testing SpecialFunctions.sinint with 1 arguments
       ...auto-testing Base.secd with 1 arguments
       ...auto-testing SpecialFunctions.beta with 2 arguments
       ...auto-testing SpecialFunctions.hankelh2x with 2 arguments
       ...auto-testing LogExpFunctions.logsubexp with 2 arguments
       ...auto-testing Base.log10 with 1 arguments
       ...auto-testing Base.sech with 1 arguments
       ...auto-testing SpecialFunctions.invdigamma with 1 arguments
       ...auto-testing SpecialFunctions.trigamma with 1 arguments
       ...auto-testing Base.sinh with 1 arguments
       ...auto-testing SpecialFunctions.cosint with 1 arguments
       ...auto-testing SpecialFunctions.besselkx with 2 arguments
       ...auto-testing Base.cot with 1 arguments
       ...auto-testing SpecialFunctions.airybiprimex with 1 arguments
       ...auto-testing SpecialFunctions.logerfcx with 1 arguments
       ...auto-testing Base.hypot with 2 arguments
       ...auto-testing Base.csc with 1 arguments
       ...auto-testing NaNMath.log1p with 1 arguments
       ...auto-testing Base.csch with 1 arguments
       ...auto-testing SpecialFunctions.besselj1 with 1 arguments
       ...auto-testing NaNMath.atanh with 1 arguments
       ...auto-testing SpecialFunctions.erfi with 1 arguments
       ...auto-testing Base.rem with 2 arguments
       ...auto-testing SpecialFunctions.besselj with 2 arguments
       ...auto-testing NaNMath.acosh with 1 arguments
       ...auto-testing Base.mod with 2 arguments
       ...auto-testing LogExpFunctions.logit with 1 arguments
       ...auto-testing LogExpFunctions.xlog1py with 2 arguments
       ...auto-testing Base.log2 with 1 arguments
       ...auto-testing Base.log1p with 1 arguments
       ...auto-testing Base.exp2 with 1 arguments
       ...auto-testing SpecialFunctions.besselj0 with 1 arguments
       ...auto-testing LogExpFunctions.logexpm1 with 1 arguments
       ...auto-testing Base.log with 1 arguments
       ...auto-testing NaNMath.log with 1 arguments
       ...auto-testing SpecialFunctions.hankelh2 with 2 arguments
       ...auto-testing SpecialFunctions.ellipk with 1 arguments
       ...auto-testing NaNMath.pow with 2 arguments
       ...auto-testing SpecialFunctions.erf with 2 arguments
       ...auto-testing Base.asin with 1 arguments
       ...auto-testing Base.acosh with 1 arguments
       ...auto-testing Base.sind with 1 arguments
       ...auto-testing NaNMath.log2 with 1 arguments
       ...auto-testing SpecialFunctions.airybiprime with 1 arguments
       ...auto-testing Base.cospi with 1 arguments
       ...auto-testing NaNMath.cos with 1 arguments
       ...auto-testing LogExpFunctions.log1psq with 1 arguments
       ...auto-testing SpecialFunctions.erf with 1 arguments
       ...auto-testing SpecialFunctions.dawson with 1 arguments
       ...auto-testing Base.sin with 1 arguments
       ...auto-testing Base.deg2rad with 1 arguments
       ...auto-testing SpecialFunctions.bessely0 with 1 arguments
       ...auto-testing Base.acsch with 1 arguments
       ...auto-testing SpecialFunctions.airyaix with 1 arguments
       ...auto-testing Base.cos with 1 arguments
       ...auto-testing SpecialFunctions.erfcinv with 1 arguments
       ...auto-testing SpecialFunctions.zeta with 2 arguments
       ...auto-testing SpecialFunctions.erfinv with 1 arguments
       ...auto-testing LogExpFunctions.log1pmx with 1 arguments
       ...auto-testing LogExpFunctions.logaddexp with 2 arguments
       ...auto-testing Base.asech with 1 arguments
       ...auto-testing SpecialFunctions.bessely with 2 arguments
  ...testing Dual{TestTag(),Int64,3} and Dual{TestTag(),Dual{TestTag(),Int64,0},3}
  ...testing Dual{TestTag(),Float32,3} and Dual{TestTag(),Dual{TestTag(),Float32,0},3}
       ...auto-testing Base.expm1 with 1 arguments
       ...auto-testing Base.acos with 1 arguments
       ...auto-testing Base.cotd with 1 arguments
       ...auto-testing Base.sinpi with 1 arguments
       ...auto-testing Base.min with 2 arguments
       ...auto-testing Base.sqrt with 1 arguments
       ...auto-testing Base.asinh with 1 arguments
       ...auto-testing SpecialFunctions.gamma with 1 arguments
       ...auto-testing SpecialFunctions.hankelh1 with 2 arguments
       ...auto-testing SpecialFunctions.erfcx with 1 arguments
       ...auto-testing Base.tand with 1 arguments
       ...auto-testing Base.+ with 1 arguments
       ...auto-testing Base.^ with 2 arguments
       ...auto-testing Base.asec with 1 arguments
       ...auto-testing SpecialFunctions.ellipe with 1 arguments
       ...auto-testing SpecialFunctions.besseljx with 2 arguments
       ...auto-testing SpecialFunctions.polygamma with 2 arguments
       ...auto-testing Base.abs2 with 1 arguments
       ...auto-testing Base.sinc with 1 arguments
       ...auto-testing SpecialFunctions.hankelh1x with 2 arguments
       ...auto-testing Base.acosd with 1 arguments
       ...auto-testing Base.acsc with 1 arguments
       ...auto-testing SpecialFunctions.bessely1 with 1 arguments
       ...auto-testing Base.log with 2 arguments
       ...auto-testing SpecialFunctions.besselix with 2 arguments
       ...auto-testing NaNMath.tan with 1 arguments
       ...auto-testing Base.cbrt with 1 arguments
       ...auto-testing Base.inv with 1 arguments
       ...auto-testing SpecialFunctions.erfc with 1 arguments
       ...auto-testing Base.tan with 1 arguments
       ...auto-testing SpecialFunctions.digamma with 1 arguments
       ...auto-testing Base.ldexp with 2 arguments
       ...auto-testing Base.cscd with 1 arguments
       ...auto-testing Base.- with 1 arguments
       ...auto-testing Base.atanh with 1 arguments
       ...auto-testing Base.rad2deg with 1 arguments
       ...auto-testing SpecialFunctions.airyai with 1 arguments
       ...auto-testing NaNMath.max with 2 arguments
       ...auto-testing SpecialFunctions.logbeta with 2 arguments
       ...auto-testing NaNMath.min with 2 arguments
       ...auto-testing Base.asind with 1 arguments
       ...auto-testing Base.- with 2 arguments
       ...auto-testing SpecialFunctions.besselh with 2 arguments
       ...auto-testing SpecialFunctions.besselhx with 2 arguments
       ...auto-testing Base.cosd with 1 arguments
       ...auto-testing SpecialFunctions.loggamma with 1 arguments
       ...auto-testing Base.mod2pi with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprimex with 1 arguments
       ...auto-testing LogExpFunctions.logistic with 1 arguments
       ...auto-testing LogExpFunctions.log2mexp with 1 arguments
       ...auto-testing Base.cosh with 1 arguments
       ...auto-testing NaNMath.sin with 1 arguments
       ...auto-testing SpecialFunctions.besseli with 2 arguments
       ...auto-testing Base.exp10 with 1 arguments
       ...auto-testing Base.+ with 2 arguments
       ...auto-testing Base.acot with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprime with 1 arguments
       ...auto-testing Base.atan with 2 arguments
       ...auto-testing LogExpFunctions.xlogy with 2 arguments
       ...auto-testing SpecialFunctions.airybix with 1 arguments
       ...auto-testing LogExpFunctions.xlogx with 1 arguments
       ...auto-testing LogExpFunctions.logmxp1 with 1 arguments
       ...auto-testing NaNMath.sqrt with 1 arguments
       ...auto-testing Base.acoth with 1 arguments
       ...auto-testing Base.abs with 1 arguments
       ...auto-testing Base.* with 2 arguments
       ...auto-testing Base.tanh with 1 arguments
       ...auto-testing SpecialFunctions.besselyx with 2 arguments
       ...auto-testing Base.coth with 1 arguments
       ...auto-testing Base.max with 2 arguments
       ...auto-testing Base.atan with 1 arguments
       ...auto-testing NaNMath.log10 with 1 arguments
       ...auto-testing Base.exp with 1 arguments
       ...auto-testing NaNMath.lgamma with 1 arguments
       ...auto-testing NaNMath.acos with 1 arguments
       ...auto-testing SpecialFunctions.besselk with 2 arguments
       ...auto-testing LogExpFunctions.log1pexp with 1 arguments
       ...auto-testing Base.atand with 1 arguments
       ...auto-testing NaNMath.asin with 1 arguments
       ...auto-testing Base.sec with 1 arguments
       ...auto-testing LogExpFunctions.log1mexp with 1 arguments
       ...auto-testing SpecialFunctions.logerfc with 1 arguments
       ...auto-testing Base.acscd with 1 arguments
       ...auto-testing Base.acotd with 1 arguments
       ...auto-testing Base.asecd with 1 arguments
       ...auto-testing Base.\ with 2 arguments
       ...auto-testing SpecialFunctions.airybi with 1 arguments
       ...auto-testing SpecialFunctions.sinint with 1 arguments
       ...auto-testing Base.secd with 1 arguments
       ...auto-testing SpecialFunctions.beta with 2 arguments
       ...auto-testing SpecialFunctions.hankelh2x with 2 arguments
       ...auto-testing LogExpFunctions.logsubexp with 2 arguments
       ...auto-testing Base.log10 with 1 arguments
       ...auto-testing Base.sech with 1 arguments
       ...auto-testing SpecialFunctions.invdigamma with 1 arguments
       ...auto-testing SpecialFunctions.trigamma with 1 arguments
       ...auto-testing Base.sinh with 1 arguments
       ...auto-testing SpecialFunctions.cosint with 1 arguments
       ...auto-testing SpecialFunctions.besselkx with 2 arguments
       ...auto-testing Base.cot with 1 arguments
       ...auto-testing SpecialFunctions.airybiprimex with 1 arguments
       ...auto-testing SpecialFunctions.logerfcx with 1 arguments
       ...auto-testing Base.hypot with 2 arguments
       ...auto-testing Base.csc with 1 arguments
       ...auto-testing NaNMath.log1p with 1 arguments
       ...auto-testing Base.csch with 1 arguments
       ...auto-testing SpecialFunctions.besselj1 with 1 arguments
       ...auto-testing NaNMath.atanh with 1 arguments
       ...auto-testing SpecialFunctions.erfi with 1 arguments
       ...auto-testing Base.rem with 2 arguments
       ...auto-testing SpecialFunctions.besselj with 2 arguments
       ...auto-testing NaNMath.acosh with 1 arguments
       ...auto-testing Base.mod with 2 arguments
       ...auto-testing LogExpFunctions.logit with 1 arguments
       ...auto-testing LogExpFunctions.xlog1py with 2 arguments
       ...auto-testing Base.log2 with 1 arguments
       ...auto-testing Base.log1p with 1 arguments
       ...auto-testing Base.exp2 with 1 arguments
       ...auto-testing SpecialFunctions.besselj0 with 1 arguments
       ...auto-testing LogExpFunctions.logexpm1 with 1 arguments
       ...auto-testing Base.log with 1 arguments
       ...auto-testing NaNMath.log with 1 arguments
       ...auto-testing SpecialFunctions.hankelh2 with 2 arguments
       ...auto-testing SpecialFunctions.ellipk with 1 arguments
       ...auto-testing NaNMath.pow with 2 arguments
       ...auto-testing SpecialFunctions.erf with 2 arguments
       ...auto-testing Base.asin with 1 arguments
       ...auto-testing Base.acosh with 1 arguments
       ...auto-testing Base.sind with 1 arguments
       ...auto-testing NaNMath.log2 with 1 arguments
       ...auto-testing SpecialFunctions.airybiprime with 1 arguments
       ...auto-testing Base.cospi with 1 arguments
       ...auto-testing NaNMath.cos with 1 arguments
       ...auto-testing LogExpFunctions.log1psq with 1 arguments
       ...auto-testing SpecialFunctions.erf with 1 arguments
       ...auto-testing SpecialFunctions.dawson with 1 arguments
       ...auto-testing Base.sin with 1 arguments
       ...auto-testing Base.deg2rad with 1 arguments
       ...auto-testing SpecialFunctions.bessely0 with 1 arguments
       ...auto-testing Base.acsch with 1 arguments
       ...auto-testing SpecialFunctions.airyaix with 1 arguments
       ...auto-testing Base.cos with 1 arguments
       ...auto-testing SpecialFunctions.erfcinv with 1 arguments
       ...auto-testing SpecialFunctions.zeta with 2 arguments
       ...auto-testing SpecialFunctions.erfinv with 1 arguments
       ...auto-testing LogExpFunctions.log1pmx with 1 arguments
       ...auto-testing LogExpFunctions.logaddexp with 2 arguments
       ...auto-testing Base.asech with 1 arguments
       ...auto-testing SpecialFunctions.bessely with 2 arguments
  ...testing Dual{TestTag(),Int64,3} and Dual{TestTag(),Dual{TestTag(),Int64,4},3}
  ...testing Dual{TestTag(),Float32,3} and Dual{TestTag(),Dual{TestTag(),Float32,4},3}
       ...auto-testing Base.expm1 with 1 arguments
       ...auto-testing Base.acos with 1 arguments
       ...auto-testing Base.cotd with 1 arguments
       ...auto-testing Base.sinpi with 1 arguments
       ...auto-testing Base.min with 2 arguments
       ...auto-testing Base.sqrt with 1 arguments
       ...auto-testing Base.asinh with 1 arguments
       ...auto-testing SpecialFunctions.gamma with 1 arguments
       ...auto-testing SpecialFunctions.hankelh1 with 2 arguments
       ...auto-testing SpecialFunctions.erfcx with 1 arguments
       ...auto-testing Base.tand with 1 arguments
       ...auto-testing Base.+ with 1 arguments
       ...auto-testing Base.^ with 2 arguments
       ...auto-testing Base.asec with 1 arguments
       ...auto-testing SpecialFunctions.ellipe with 1 arguments
       ...auto-testing SpecialFunctions.besseljx with 2 arguments
       ...auto-testing SpecialFunctions.polygamma with 2 arguments
       ...auto-testing Base.abs2 with 1 arguments
       ...auto-testing Base.sinc with 1 arguments
       ...auto-testing SpecialFunctions.hankelh1x with 2 arguments
       ...auto-testing Base.acosd with 1 arguments
       ...auto-testing Base.acsc with 1 arguments
       ...auto-testing SpecialFunctions.bessely1 with 1 arguments
       ...auto-testing Base.log with 2 arguments
       ...auto-testing SpecialFunctions.besselix with 2 arguments
       ...auto-testing NaNMath.tan with 1 arguments
       ...auto-testing Base.cbrt with 1 arguments
       ...auto-testing Base.inv with 1 arguments
       ...auto-testing SpecialFunctions.erfc with 1 arguments
       ...auto-testing Base.tan with 1 arguments
       ...auto-testing SpecialFunctions.digamma with 1 arguments
       ...auto-testing Base.ldexp with 2 arguments
       ...auto-testing Base.cscd with 1 arguments
       ...auto-testing Base.- with 1 arguments
       ...auto-testing Base.atanh with 1 arguments
       ...auto-testing Base.rad2deg with 1 arguments
       ...auto-testing SpecialFunctions.airyai with 1 arguments
       ...auto-testing NaNMath.max with 2 arguments
       ...auto-testing SpecialFunctions.logbeta with 2 arguments
       ...auto-testing NaNMath.min with 2 arguments
       ...auto-testing Base.asind with 1 arguments
       ...auto-testing Base.- with 2 arguments
       ...auto-testing SpecialFunctions.besselh with 2 arguments
       ...auto-testing SpecialFunctions.besselhx with 2 arguments
       ...auto-testing Base.cosd with 1 arguments
       ...auto-testing SpecialFunctions.loggamma with 1 arguments
       ...auto-testing Base.mod2pi with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprimex with 1 arguments
       ...auto-testing LogExpFunctions.logistic with 1 arguments
       ...auto-testing LogExpFunctions.log2mexp with 1 arguments
       ...auto-testing Base.cosh with 1 arguments
       ...auto-testing NaNMath.sin with 1 arguments
       ...auto-testing SpecialFunctions.besseli with 2 arguments
       ...auto-testing Base.exp10 with 1 arguments
       ...auto-testing Base.+ with 2 arguments
       ...auto-testing Base.acot with 1 arguments
       ...auto-testing SpecialFunctions.airyaiprime with 1 arguments
       ...auto-testing Base.atan with 2 arguments
       ...auto-testing LogExpFunctions.xlogy with 2 arguments
       ...auto-testing SpecialFunctions.airybix with 1 arguments
       ...auto-testing LogExpFunctions.xlogx with 1 arguments
       ...auto-testing LogExpFunctions.logmxp1 with 1 arguments
       ...auto-testing NaNMath.sqrt with 1 arguments
       ...auto-testing Base.acoth with 1 arguments
       ...auto-testing Base.abs with 1 arguments
       ...auto-testing Base.* with 2 arguments
       ...auto-testing Base.tanh with 1 arguments
       ...auto-testing SpecialFunctions.besselyx with 2 arguments
       ...auto-testing Base.coth with 1 arguments
       ...auto-testing Base.max with 2 arguments
       ...auto-testing Base.atan with 1 arguments
       ...auto-testing NaNMath.log10 with 1 arguments
       ...auto-testing Base.exp with 1 arguments
       ...auto-testing NaNMath.lgamma with 1 arguments
       ...auto-testing NaNMath.acos with 1 arguments
       ...auto-testing SpecialFunctions.besselk with 2 arguments
       ...auto-testing LogExpFunctions.log1pexp with 1 arguments
       ...auto-testing Base.atand with 1 arguments
       ...auto-testing NaNMath.asin with 1 arguments
       ...auto-testing Base.sec with 1 arguments
       ...auto-testing LogExpFunctions.log1mexp with 1 arguments
       ...auto-testing SpecialFunctions.logerfc with 1 arguments
       ...auto-testing Base.acscd with 1 arguments
       ...auto-testing Base.acotd with 1 arguments
       ...auto-testing Base.asecd with 1 arguments
       ...auto-testing Base.\ with 2 arguments
       ...auto-testing SpecialFunctions.airybi with 1 arguments
       ...auto-testing SpecialFunctions.sinint with 1 arguments
       ...auto-testing Base.secd with 1 arguments
       ...auto-testing SpecialFunctions.beta with 2 arguments
       ...auto-testing SpecialFunctions.hankelh2x with 2 arguments
       ...auto-testing LogExpFunctions.logsubexp with 2 arguments
       ...auto-testing Base.log10 with 1 arguments
       ...auto-testing Base.sech with 1 arguments
       ...auto-testing SpecialFunctions.invdigamma with 1 arguments
       ...auto-testing SpecialFunctions.trigamma with 1 arguments
       ...auto-testing Base.sinh with 1 arguments
       ...auto-testing SpecialFunctions.cosint with 1 arguments
       ...auto-testing SpecialFunctions.besselkx with 2 arguments
       ...auto-testing Base.cot with 1 arguments
       ...auto-testing SpecialFunctions.airybiprimex with 1 arguments
       ...auto-testing SpecialFunctions.logerfcx with 1 arguments
       ...auto-testing Base.hypot with 2 arguments
       ...auto-testing Base.csc with 1 arguments
       ...auto-testing NaNMath.log1p with 1 arguments
       ...auto-testing Base.csch with 1 arguments
       ...auto-testing SpecialFunctions.besselj1 with 1 arguments
       ...auto-testing NaNMath.atanh with 1 arguments
       ...auto-testing SpecialFunctions.erfi with 1 arguments
       ...auto-testing Base.rem with 2 arguments
       ...auto-testing SpecialFunctions.besselj with 2 arguments
       ...auto-testing NaNMath.acosh with 1 arguments
       ...auto-testing Base.mod with 2 arguments
       ...auto-testing LogExpFunctions.logit with 1 arguments
       ...auto-testing LogExpFunctions.xlog1py with 2 arguments
       ...auto-testing Base.log2 with 1 arguments
       ...auto-testing Base.log1p with 1 arguments
       ...auto-testing Base.exp2 with 1 arguments
       ...auto-testing SpecialFunctions.besselj0 with 1 arguments
       ...auto-testing LogExpFunctions.logexpm1 with 1 arguments
       ...auto-testing Base.log with 1 arguments
       ...auto-testing NaNMath.log with 1 arguments
       ...auto-testing SpecialFunctions.hankelh2 with 2 arguments
       ...auto-testing SpecialFunctions.ellipk with 1 arguments
       ...auto-testing NaNMath.pow with 2 arguments
       ...auto-testing SpecialFunctions.erf with 2 arguments
       ...auto-testing Base.asin with 1 arguments
       ...auto-testing Base.acosh with 1 arguments
       ...auto-testing Base.sind with 1 arguments
       ...auto-testing NaNMath.log2 with 1 arguments
       ...auto-testing SpecialFunctions.airybiprime with 1 arguments
       ...auto-testing Base.cospi with 1 arguments
       ...auto-testing NaNMath.cos with 1 arguments
       ...auto-testing LogExpFunctions.log1psq with 1 arguments
       ...auto-testing SpecialFunctions.erf with 1 arguments
       ...auto-testing SpecialFunctions.dawson with 1 arguments
       ...auto-testing Base.sin with 1 arguments
       ...auto-testing Base.deg2rad with 1 arguments
       ...auto-testing SpecialFunctions.bessely0 with 1 arguments
       ...auto-testing Base.acsch with 1 arguments
       ...auto-testing SpecialFunctions.airyaix with 1 arguments
       ...auto-testing Base.cos with 1 arguments
       ...auto-testing SpecialFunctions.erfcinv with 1 arguments
       ...auto-testing SpecialFunctions.zeta with 2 arguments
       ...auto-testing SpecialFunctions.erfinv with 1 arguments
       ...auto-testing LogExpFunctions.log1pmx with 1 arguments
       ...auto-testing LogExpFunctions.logaddexp with 2 arguments
       ...auto-testing Base.asech with 1 arguments
       ...auto-testing SpecialFunctions.bessely with 2 arguments
Test Summary:          | Pass  Total  Time
Exponentiation of zero |    4      4  0.2s
Test Summary: | Pass  Total  Time
Type min/max  |   10     10  0.0s
Test Summary: | Pass  Total  Time
Integer       |    8      8  0.1s
Testing @printf: 1.00e+00
Testing @printf: 1.00e+00
Testing @printf: 1.00e+00
Testing @printf: 1.00e+00
Test Summary: | Pass  Total  Time
@printf       |    8      8  1.0s
Test Summary: | Pass  Total  Time
float         |    4      4  0.1s
done (took 16.8429777 seconds).
Testing derivative functionality...
  ...testing num2num_1
  ...testing num2num_2
  ...testing num2num_3
  ...testing num2num_4
  ...testing num2num_5
  ...testing identity
  ...testing num2arr_1
  ...testing num2arr_1!
Test Summary:                     | Pass  Total  Time
exponential function at base zero |    4      4  0.1s
Test Summary:                  | Pass  Total  Time
dimension error for derivative |    1      1  0.0s
Test Summary:  | Pass  Total  Time
complex output |    1      1  0.0s
done (took 2.0811971 seconds).
Testing gradient functionality...
  ...running hardcoded test with chunk size = 1 and tag = nothing
  ...running hardcoded test with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...running hardcoded test with chunk size = 2 and tag = nothing
  ...running hardcoded test with chunk size = 2 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...running hardcoded test with chunk size = 3 and tag = nothing
  ...running hardcoded test with chunk size = 3 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...testing vec2num_1 with chunk size = 1 and tag = nothing
  ...testing vec2num_1 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_1), Float64}()
  ...testing vec2num_1 with chunk size = 4 and tag = nothing
  ...testing vec2num_1 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_1), Float64}()
  ...testing vec2num_1 with chunk size = 6 and tag = nothing
  ...testing vec2num_1 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_1), Float64}()
  ...testing vec2num_1 with chunk size = 12 and tag = nothing
  ...testing vec2num_1 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_1), Float64}()
  ...testing vec2num_1 with chunk size = 13 and tag = nothing
  ...testing vec2num_1 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_1), Float64}()
  ...testing vec2num_2 with chunk size = 1 and tag = nothing
  ...testing vec2num_2 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_2), Float64}()
  ...testing vec2num_2 with chunk size = 4 and tag = nothing
  ...testing vec2num_2 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_2), Float64}()
  ...testing vec2num_2 with chunk size = 6 and tag = nothing
  ...testing vec2num_2 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_2), Float64}()
  ...testing vec2num_2 with chunk size = 12 and tag = nothing
  ...testing vec2num_2 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_2), Float64}()
  ...testing vec2num_2 with chunk size = 13 and tag = nothing
  ...testing vec2num_2 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_2), Float64}()
  ...testing vec2num_3 with chunk size = 1 and tag = nothing
  ...testing vec2num_3 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_3), Float64}()
  ...testing vec2num_3 with chunk size = 4 and tag = nothing
  ...testing vec2num_3 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_3), Float64}()
  ...testing vec2num_3 with chunk size = 6 and tag = nothing
  ...testing vec2num_3 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_3), Float64}()
  ...testing vec2num_3 with chunk size = 12 and tag = nothing
  ...testing vec2num_3 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_3), Float64}()
  ...testing vec2num_3 with chunk size = 13 and tag = nothing
  ...testing vec2num_3 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_3), Float64}()
  ...testing vec2num_4 with chunk size = 1 and tag = nothing
  ...testing vec2num_4 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_4), Float64}()
  ...testing vec2num_4 with chunk size = 4 and tag = nothing
  ...testing vec2num_4 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_4), Float64}()
  ...testing vec2num_4 with chunk size = 6 and tag = nothing
  ...testing vec2num_4 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_4), Float64}()
  ...testing vec2num_4 with chunk size = 12 and tag = nothing
  ...testing vec2num_4 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_4), Float64}()
  ...testing vec2num_4 with chunk size = 13 and tag = nothing
  ...testing vec2num_4 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_4), Float64}()
  ...testing vec2num_5 with chunk size = 1 and tag = nothing
  ...testing vec2num_5 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_5), Float64}()
  ...testing vec2num_5 with chunk size = 4 and tag = nothing
  ...testing vec2num_5 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_5), Float64}()
  ...testing vec2num_5 with chunk size = 6 and tag = nothing
  ...testing vec2num_5 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_5), Float64}()
  ...testing vec2num_5 with chunk size = 12 and tag = nothing
  ...testing vec2num_5 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_5), Float64}()
  ...testing vec2num_5 with chunk size = 13 and tag = nothing
  ...testing vec2num_5 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_5), Float64}()
  ...testing vec2num_6 with chunk size = 1 and tag = nothing
  ...testing vec2num_6 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_6), Float64}()
  ...testing vec2num_6 with chunk size = 4 and tag = nothing
  ...testing vec2num_6 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_6), Float64}()
  ...testing vec2num_6 with chunk size = 6 and tag = nothing
  ...testing vec2num_6 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_6), Float64}()
  ...testing vec2num_6 with chunk size = 12 and tag = nothing
  ...testing vec2num_6 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_6), Float64}()
  ...testing vec2num_6 with chunk size = 13 and tag = nothing
  ...testing vec2num_6 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_6), Float64}()
  ...testing vec2num_7 with chunk size = 1 and tag = nothing
  ...testing vec2num_7 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_7), Float64}()
  ...testing vec2num_7 with chunk size = 4 and tag = nothing
  ...testing vec2num_7 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_7), Float64}()
  ...testing vec2num_7 with chunk size = 6 and tag = nothing
  ...testing vec2num_7 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_7), Float64}()
  ...testing vec2num_7 with chunk size = 12 and tag = nothing
  ...testing vec2num_7 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_7), Float64}()
  ...testing vec2num_7 with chunk size = 13 and tag = nothing
  ...testing vec2num_7 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.vec2num_7), Float64}()
  ...testing rosenbrock_1 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...testing rosenbrock_1 with chunk size = 4 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...testing rosenbrock_1 with chunk size = 6 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...testing rosenbrock_1 with chunk size = 12 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...testing rosenbrock_1 with chunk size = 13 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_1), Float64}()
  ...testing rosenbrock_2 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_2), Float64}()
  ...testing rosenbrock_2 with chunk size = 4 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_2), Float64}()
  ...testing rosenbrock_2 with chunk size = 6 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_2), Float64}()
  ...testing rosenbrock_2 with chunk size = 12 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_2), Float64}()
  ...testing rosenbrock_2 with chunk size = 13 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_2), Float64}()
  ...testing rosenbrock_3 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_3), Float64}()
  ...testing rosenbrock_3 with chunk size = 4 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_3), Float64}()
  ...testing rosenbrock_3 with chunk size = 6 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_3), Float64}()
  ...testing rosenbrock_3 with chunk size = 12 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_3), Float64}()
  ...testing rosenbrock_3 with chunk size = 13 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_3), Float64}()
  ...testing rosenbrock_4 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_4), Float64}()
  ...testing rosenbrock_4 with chunk size = 4 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_4), Float64}()
  ...testing rosenbrock_4 with chunk size = 6 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_4), Float64}()
  ...testing rosenbrock_4 with chunk size = 12 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_4), Float64}()
  ...testing rosenbrock_4 with chunk size = 13 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.rosenbrock_4), Float64}()
  ...testing ackley with chunk size = 1 and tag = nothing
  ...testing ackley with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.ackley), Float64}()
  ...testing ackley with chunk size = 4 and tag = nothing
  ...testing ackley with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.ackley), Float64}()
  ...testing ackley with chunk size = 6 and tag = nothing
  ...testing ackley with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.ackley), Float64}()
  ...testing ackley with chunk size = 12 and tag = nothing
  ...testing ackley with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.ackley), Float64}()
  ...testing ackley with chunk size = 13 and tag = nothing
  ...testing ackley with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.ackley), Float64}()
  ...testing self_weighted_logit with chunk size = 1 and tag = nothing
  ...testing self_weighted_logit with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.self_weighted_logit), Float64}()
  ...testing self_weighted_logit with chunk size = 4 and tag = nothing
  ...testing self_weighted_logit with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.self_weighted_logit), Float64}()
  ...testing self_weighted_logit with chunk size = 6 and tag = nothing
  ...testing nested_array_mul with chunk size = 1 and tag = nothing
  ...testing nested_array_mul with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.nested_array_mul), Float64}()
  ...testing nested_array_mul with chunk size = 4 and tag = nothing
  ...testing nested_array_mul with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.nested_array_mul), Float64}()
  ...testing nested_array_mul with chunk size = 6 and tag = nothing
  ...testing nested_array_mul with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.nested_array_mul), Float64}()
  ...testing nested_array_mul with chunk size = 12 and tag = nothing
  ...testing nested_array_mul with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.nested_array_mul), Float64}()
  ...testing nested_array_mul with chunk size = 13 and tag = nothing
  ...testing nested_array_mul with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.nested_array_mul), Float64}()
  ...testing first with chunk size = 1 and tag = nothing
  ...testing first with chunk size = 1 and tag = ForwardDiff.Tag{typeof(first), Float64}()
  ...testing first with chunk size = 4 and tag = nothing
  ...testing first with chunk size = 4 and tag = ForwardDiff.Tag{typeof(first), Float64}()
  ...testing first with chunk size = 6 and tag = nothing
  ...testing first with chunk size = 6 and tag = ForwardDiff.Tag{typeof(first), Float64}()
  ...testing first with chunk size = 12 and tag = nothing
  ...testing first with chunk size = 12 and tag = ForwardDiff.Tag{typeof(first), Float64}()
  ...testing first with chunk size = 13 and tag = nothing
  ...testing first with chunk size = 13 and tag = ForwardDiff.Tag{typeof(first), Float64}()
  ...testing specialized StaticArray codepaths
Test Summary:                     | Pass  Total  Time
exponential function at base zero |    4      4  0.8s
Test Summary:   | Pass  Total  Time
chunk size zero |    2      2  0.4s
Test Summary:                 | Pass  Total  Time
dimension errors for gradient |    3      3  0.5s
Test Summary:   | Pass  Total  Time
ArithmeticStyle |    1      1  0.3s
done (took 57.0764691 seconds).
Testing jacobian functionality...
  ...running hardcoded test with chunk size = 1 and tag = (nothing, nothing)
  ...running hardcoded test with chunk size = 1 and tag = (ForwardDiff.Tag{Main.JacobianTest.var"#3#4", Int64}(), ForwardDiff.Tag{Main.JacobianTest.var"#1#2", Int64}())
  ...running hardcoded test with chunk size = 2 and tag = (nothing, nothing)
  ...running hardcoded test with chunk size = 2 and tag = (ForwardDiff.Tag{Main.JacobianTest.var"#3#4", Int64}(), ForwardDiff.Tag{Main.JacobianTest.var"#1#2", Int64}())
  ...running hardcoded test with chunk size = 3 and tag = (nothing, nothing)
  ...running hardcoded test with chunk size = 3 and tag = (ForwardDiff.Tag{Main.JacobianTest.var"#3#4", Int64}(), ForwardDiff.Tag{Main.JacobianTest.var"#1#2", Int64}())
  ...testing - with chunk size = 1 and tag = nothing
  ...testing - with chunk size = 1 and tag = ForwardDiff.Tag{typeof(-), Float64}()
  ...testing - with chunk size = 4 and tag = nothing
  ...testing - with chunk size = 4 and tag = ForwardDiff.Tag{typeof(-), Float64}()
  ...testing - with chunk size = 6 and tag = nothing
  ...testing - with chunk size = 6 and tag = ForwardDiff.Tag{typeof(-), Float64}()
  ...testing - with chunk size = 12 and tag = nothing
  ...testing - with chunk size = 12 and tag = ForwardDiff.Tag{typeof(-), Float64}()
  ...testing - with chunk size = 13 and tag = nothing
  ...testing - with chunk size = 13 and tag = ForwardDiff.Tag{typeof(-), Float64}()
  ...testing chebyquad with chunk size = 1 and tag = nothing
  ...testing chebyquad with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad), Float64}()
  ...testing chebyquad with chunk size = 4 and tag = nothing
  ...testing chebyquad with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad), Float64}()
  ...testing chebyquad with chunk size = 6 and tag = nothing
  ...testing chebyquad with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad), Float64}()
  ...testing chebyquad with chunk size = 12 and tag = nothing
  ...testing chebyquad with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad), Float64}()
  ...testing chebyquad with chunk size = 13 and tag = nothing
  ...testing chebyquad with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad), Float64}()
  ...testing brown_almost_linear with chunk size = 1 and tag = nothing
  ...testing brown_almost_linear with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear), Float64}()
  ...testing brown_almost_linear with chunk size = 4 and tag = nothing
  ...testing brown_almost_linear with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear), Float64}()
  ...testing brown_almost_linear with chunk size = 6 and tag = nothing
  ...testing brown_almost_linear with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear), Float64}()
  ...testing brown_almost_linear with chunk size = 12 and tag = nothing
  ...testing brown_almost_linear with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear), Float64}()
  ...testing brown_almost_linear with chunk size = 13 and tag = nothing
  ...testing brown_almost_linear with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear), Float64}()
  ...testing trigonometric with chunk size = 1 and tag = nothing
  ...testing trigonometric with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric), Float64}()
  ...testing trigonometric with chunk size = 4 and tag = nothing
  ...testing trigonometric with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric), Float64}()
  ...testing trigonometric with chunk size = 6 and tag = nothing
  ...testing trigonometric with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric), Float64}()
  ...testing trigonometric with chunk size = 12 and tag = nothing
  ...testing trigonometric with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric), Float64}()
  ...testing trigonometric with chunk size = 13 and tag = nothing
  ...testing trigonometric with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric), Float64}()
  ...testing arr2arr_1 with chunk size = 1 and tag = nothing
  ...testing arr2arr_1 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_1), Float64}()
  ...testing arr2arr_1 with chunk size = 4 and tag = nothing
  ...testing arr2arr_1 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_1), Float64}()
  ...testing arr2arr_1 with chunk size = 6 and tag = nothing
  ...testing arr2arr_1 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_1), Float64}()
  ...testing arr2arr_1 with chunk size = 12 and tag = nothing
  ...testing arr2arr_1 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_1), Float64}()
  ...testing arr2arr_1 with chunk size = 13 and tag = nothing
  ...testing arr2arr_1 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_1), Float64}()
  ...testing arr2arr_2 with chunk size = 1 and tag = nothing
  ...testing arr2arr_2 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_2), Float64}()
  ...testing arr2arr_2 with chunk size = 4 and tag = nothing
  ...testing arr2arr_2 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_2), Float64}()
  ...testing arr2arr_2 with chunk size = 6 and tag = nothing
  ...testing arr2arr_2 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_2), Float64}()
  ...testing arr2arr_2 with chunk size = 12 and tag = nothing
  ...testing arr2arr_2 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_2), Float64}()
  ...testing arr2arr_2 with chunk size = 13 and tag = nothing
  ...testing arr2arr_2 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.arr2arr_2), Float64}()
  ...testing mutation_test_1 with chunk size = 1 and tag = nothing
  ...testing mutation_test_1 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1), Float64}()
  ...testing mutation_test_1 with chunk size = 4 and tag = nothing
  ...testing mutation_test_1 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1), Float64}()
  ...testing mutation_test_1 with chunk size = 6 and tag = nothing
  ...testing mutation_test_1 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1), Float64}()
  ...testing mutation_test_1 with chunk size = 12 and tag = nothing
  ...testing mutation_test_1 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1), Float64}()
  ...testing mutation_test_1 with chunk size = 13 and tag = nothing
  ...testing mutation_test_1 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1), Float64}()
  ...testing mutation_test_2 with chunk size = 1 and tag = nothing
  ...testing mutation_test_2 with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2), Float64}()
  ...testing mutation_test_2 with chunk size = 4 and tag = nothing
  ...testing mutation_test_2 with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2), Float64}()
  ...testing mutation_test_2 with chunk size = 6 and tag = nothing
  ...testing mutation_test_2 with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2), Float64}()
  ...testing mutation_test_2 with chunk size = 12 and tag = nothing
  ...testing mutation_test_2 with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2), Float64}()
  ...testing mutation_test_2 with chunk size = 13 and tag = nothing
  ...testing mutation_test_2 with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2), Float64}()
  ...testing identity with chunk size = 1 and tag = nothing
  ...testing identity with chunk size = 1 and tag = ForwardDiff.Tag{typeof(identity), Float64}()
  ...testing identity with chunk size = 4 and tag = nothing
  ...testing identity with chunk size = 4 and tag = ForwardDiff.Tag{typeof(identity), Float64}()
  ...testing identity with chunk size = 6 and tag = nothing
  ...testing identity with chunk size = 6 and tag = ForwardDiff.Tag{typeof(identity), Float64}()
  ...testing identity with chunk size = 12 and tag = nothing
  ...testing identity with chunk size = 12 and tag = ForwardDiff.Tag{typeof(identity), Float64}()
  ...testing identity with chunk size = 13 and tag = nothing
  ...testing identity with chunk size = 13 and tag = ForwardDiff.Tag{typeof(identity), Float64}()
  ...testing chebyquad! with chunk size = 1 and tag = nothing
  ...testing chebyquad! with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad!), Float64}()
  ...testing chebyquad! with chunk size = 4 and tag = nothing
  ...testing chebyquad! with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad!), Float64}()
  ...testing chebyquad! with chunk size = 6 and tag = nothing
  ...testing chebyquad! with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad!), Float64}()
  ...testing chebyquad! with chunk size = 12 and tag = nothing
  ...testing chebyquad! with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad!), Float64}()
  ...testing chebyquad! with chunk size = 13 and tag = nothing
  ...testing chebyquad! with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.chebyquad!), Float64}()
  ...testing brown_almost_linear! with chunk size = 1 and tag = nothing
  ...testing brown_almost_linear! with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear!), Float64}()
  ...testing brown_almost_linear! with chunk size = 4 and tag = nothing
  ...testing brown_almost_linear! with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear!), Float64}()
  ...testing brown_almost_linear! with chunk size = 6 and tag = nothing
  ...testing brown_almost_linear! with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear!), Float64}()
  ...testing brown_almost_linear! with chunk size = 12 and tag = nothing
  ...testing brown_almost_linear! with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear!), Float64}()
  ...testing brown_almost_linear! with chunk size = 13 and tag = nothing
  ...testing brown_almost_linear! with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.brown_almost_linear!), Float64}()
  ...testing trigonometric! with chunk size = 1 and tag = nothing
  ...testing trigonometric! with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric!), Float64}()
  ...testing trigonometric! with chunk size = 4 and tag = nothing
  ...testing trigonometric! with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric!), Float64}()
  ...testing trigonometric! with chunk size = 6 and tag = nothing
  ...testing trigonometric! with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric!), Float64}()
  ...testing trigonometric! with chunk size = 12 and tag = nothing
  ...testing trigonometric! with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric!), Float64}()
  ...testing trigonometric! with chunk size = 13 and tag = nothing
  ...testing trigonometric! with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.trigonometric!), Float64}()
  ...testing mutation_test_1! with chunk size = 1 and tag = nothing
  ...testing mutation_test_1! with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1!), Float64}()
  ...testing mutation_test_1! with chunk size = 4 and tag = nothing
  ...testing mutation_test_1! with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1!), Float64}()
  ...testing mutation_test_1! with chunk size = 6 and tag = nothing
  ...testing mutation_test_1! with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1!), Float64}()
  ...testing mutation_test_1! with chunk size = 12 and tag = nothing
  ...testing mutation_test_1! with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1!), Float64}()
  ...testing mutation_test_1! with chunk size = 13 and tag = nothing
  ...testing mutation_test_1! with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_1!), Float64}()
  ...testing mutation_test_2! with chunk size = 1 and tag = nothing
  ...testing mutation_test_2! with chunk size = 1 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2!), Float64}()
  ...testing mutation_test_2! with chunk size = 4 and tag = nothing
  ...testing mutation_test_2! with chunk size = 4 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2!), Float64}()
  ...testing mutation_test_2! with chunk size = 6 and tag = nothing
  ...testing mutation_test_2! with chunk size = 6 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2!), Float64}()
  ...testing mutation_test_2! with chunk size = 12 and tag = nothing
  ...testing mutation_test_2! with chunk size = 12 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2!), Float64}()
  ...testing mutation_test_2! with chunk size = 13 and tag = nothing
  ...testing mutation_test_2! with chunk size = 13 and tag = ForwardDiff.Tag{typeof(DiffTests.mutation_test_2!), Float64}()
  ...testing specialized StaticArray codepaths
Test Summary:                 | Pass  Total  Time
dimension errors for jacobian |    3      3  0.7s
Test Summary: | Pass  Total  Time
eigen         |    5      5  7.8s
Test Summary:  |Time
type stability | None  0.5s
done (took 65.5133996 seconds).
Testing hessian functionality...
  ...running hardcoded test with chunk size = 1 and tag = nothing
  ...running hardcoded test with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...running hardcoded test with chunk size = 2 and tag = nothing
  ...running hardcoded test with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...running hardcoded test with chunk size = 3 and tag = nothing
  ...running hardcoded test with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_1 with chunk size = 1 and tag = nothing
  ...testing vec2num_1 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_1 with chunk size = 2 and tag = nothing
  ...testing vec2num_1 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_1 with chunk size = 3 and tag = nothing
  ...testing vec2num_1 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_2 with chunk size = 1 and tag = nothing
  ...testing vec2num_2 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_2), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_2 with chunk size = 2 and tag = nothing
  ...testing vec2num_2 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_2), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_2 with chunk size = 3 and tag = nothing
  ...testing vec2num_2 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_2), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_3 with chunk size = 1 and tag = nothing
  ...testing vec2num_3 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_3), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_3 with chunk size = 2 and tag = nothing
  ...testing vec2num_3 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_3), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_3 with chunk size = 3 and tag = nothing
  ...testing vec2num_3 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_3), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_4 with chunk size = 1 and tag = nothing
  ...testing vec2num_4 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_4), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_4 with chunk size = 2 and tag = nothing
  ...testing vec2num_4 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_4), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_4 with chunk size = 3 and tag = nothing
  ...testing vec2num_4 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_4), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_5 with chunk size = 1 and tag = nothing
  ...testing vec2num_5 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_5), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_5 with chunk size = 2 and tag = nothing
  ...testing vec2num_5 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_5), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_5 with chunk size = 3 and tag = nothing
  ...testing vec2num_5 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_5), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_6 with chunk size = 1 and tag = nothing
  ...testing vec2num_6 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_6), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_6 with chunk size = 2 and tag = nothing
  ...testing vec2num_6 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_6), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_6 with chunk size = 3 and tag = nothing
  ...testing vec2num_6 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_6), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_7 with chunk size = 1 and tag = nothing
  ...testing vec2num_7 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_7), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_7 with chunk size = 2 and tag = nothing
  ...testing vec2num_7 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_7), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing vec2num_7 with chunk size = 3 and tag = nothing
  ...testing vec2num_7 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.vec2num_7), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_1 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_1 with chunk size = 2 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_1 with chunk size = 3 and tag = nothing
  ...testing rosenbrock_1 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_1), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_2 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_2), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_2 with chunk size = 2 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_2), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_2 with chunk size = 3 and tag = nothing
  ...testing rosenbrock_2 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_2), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_3 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_3), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_3 with chunk size = 2 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_3), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_3 with chunk size = 3 and tag = nothing
  ...testing rosenbrock_3 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_3), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_4 with chunk size = 1 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_4), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_4 with chunk size = 2 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_4), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing rosenbrock_4 with chunk size = 3 and tag = nothing
  ...testing rosenbrock_4 with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.rosenbrock_4), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing ackley with chunk size = 1 and tag = nothing
  ...testing ackley with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.ackley), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing ackley with chunk size = 2 and tag = nothing
  ...testing ackley with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.ackley), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing ackley with chunk size = 3 and tag = nothing
  ...testing ackley with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.ackley), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing self_weighted_logit with chunk size = 1 and tag = nothing
  ...testing self_weighted_logit with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.self_weighted_logit), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing self_weighted_logit with chunk size = 2 and tag = nothing
  ...testing self_weighted_logit with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.self_weighted_logit), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing self_weighted_logit with chunk size = 3 and tag = nothing
  ...testing self_weighted_logit with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.self_weighted_logit), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing nested_array_mul with chunk size = 1 and tag = nothing
  ...testing nested_array_mul with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.nested_array_mul), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing nested_array_mul with chunk size = 2 and tag = nothing
  ...testing nested_array_mul with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.nested_array_mul), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing nested_array_mul with chunk size = 3 and tag = nothing
  ...testing nested_array_mul with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(DiffTests.nested_array_mul), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing first with chunk size = 1 and tag = nothing
  ...testing first with chunk size = 1 and tag = ForwardDiff.Tag{Tuple{typeof(first), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing first with chunk size = 2 and tag = nothing
  ...testing first with chunk size = 2 and tag = ForwardDiff.Tag{Tuple{typeof(first), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing first with chunk size = 3 and tag = nothing
  ...testing first with chunk size = 3 and tag = ForwardDiff.Tag{Tuple{typeof(first), typeof(ForwardDiff.gradient)}, Float64}()
  ...testing specialized StaticArray codepaths
done (took 120.1019734 seconds).
Testing perturbation confusion functionality...
done (took 8.7235107 seconds).
Testing miscellaneous functionality...
done (took 22.6684438 seconds).
Testing allocations...
Test Summary:          | Pass  Total  Time
Test seed! allocations |    5      5  0.0s
done (took 0.1434551 seconds).
     Testing ForwardDiff tests passed

The failure here on nightly is the same as on the current release branch (https://github.com/JuliaDiff/ForwardDiff.jl/pull/627), so it's a nightly-only issue and not on the v1.9-beta3, so merging.