調子にのって追加
template<> inline float dot( const vec3<float> & lhs, const vec3<float> & rhs ) { return cblas_sdot(3, &lhs[0], 1, &rhs[0], 1); } template<> inline float length( const vec3<float> & vec) { return cblas_snrm2(3, &vec[0], 1); } template<> inline vec3<float> normalize( const vec3<float> & vec) { vec3<float> r(vec); cblas_sscal(3, 1.0f/cblas_snrm2(3, &vec[0], 1), &r[0], 1); return r; }
使えるようにお化粧するのはサボって特殊化してるやつをコピペ。
検算して確かめてないので、悪しからず。
行列クラスを特殊化してvDSP対応にするのはぼちぼちできたけど、
ベクタクラスのほうは量が多すぎて心が折れました。
プロファイリングとってやばかったときに追々追加してく方針かな。