SSE求解向量大小


    float f=0;
__asm
{
mov esi, this ; vector u
movups xmm0, [esi] ; first vector in xmm0
mulps xmm0, xmm0 ; mul with 2nd vector
movaps xmm1, xmm0 ; copy result
shufps xmm1, xmm1, 4Eh ; shuffle: f1,f0,f3,f2
addps xmm0, xmm1 ; add: f3+f1,f2+f0,f1+f3,f0+f2
movaps xmm1, xmm0 ; copy results
shufps xmm1, xmm1, 11h ; shuffle: f0+f2,f1+f3,f0+f2,f1+f3
addps xmm0, xmm1 ; add: x,x,f0+f1+f2+f3,f0+f1+f2+f3
sqrtss xmm0, xmm0 ; sqroot from least bit value
movss f, xmm0 ; move result from xmm0 to edi
}

x, y, z,
w平方后,利用shufps将4个分量凑成相加结果为x方+y方+z方+w方,最后开方,取xmm寄存器的一个分量即是结果,取的xmm寄存器的低32位。

SSE求解向量大小,布布扣,bubuko.com

时间: 2025-01-05 17:02:42

SSE求解向量大小的相关文章

SSE 标准化向量

mov esi, this ; vector u movups xmm0, [esi] ; first vector in xmm0 movaps xmm2, xmm0 ; copy original vector mulps xmm0, xmm0 ; mul with 2nd vector movaps xmm1, xmm0 ; copy result shufps xmm1, xmm1, 4Eh ; shuffle: f1,f0,f3,f2 addps xmm0, xmm1 ; add: f

第五章:向量运算

第1节:零向量 1.零向量的概念 对于任意向量x,都有x+y=x,则x被称为零向量.例如,3D零向量为[0 0 0].零向量非常特殊,因为它是唯一大小为零的向量,并且唯一一个没有方向的向量. 第2节:负向量 1.负向量的概念 对于向量x,如果x+(-x)=0,则-x就是负向量. 2.负向量的运算法则 将此法则应用到2D,3D,4D中,则 -[x y] = [-x -y] -[x y z] = [-x -y -z] -[w x y z] = [-w -x -y -z] 3.负向量的几何解释 向量为

3D数学读书笔记——向量运算及在c++上的实现

本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 开始之前:接上上篇说的,张宇老师说过线性代数研究的就是向量.其实严谨的说,数学中专门研究向量的分之称作线性代数,线性代数是一个非常有趣并且应用广泛的研究 领域,但它与3D数学关注的领域并不相同.3D数学主要关心向量和向量运算的几何意义. 零向量:任何集合,都存在 the additive identity el

向量运算

1.零向量 加性单位元:满足y+x=y n维向量集合的加性单位元就是n维零向量 运算法则:例如3d零向量表示为:[0,0,0] 几何解释:没有位移 2.负向量 运算法则: 每个分量都变负 数学表达: 几何解释: 向量变负,将得到一个和原来向量大小相等,方向相反的向量. 3.向量的大小(长度和模) 运算法则: n维向量大小计算公式为 几何解释: 2d中任意向量v能构造一个以v为斜边的直角三角形如下图所示 4.标量与向量乘法 运算法则: 几何解释: 效果是以因子|k|缩放向量的长度,例如想让向量长度

【转】SVN需要补充的向量知识

这篇转过来的博文,将SVN需要补充的数学基础知识娓娓道来,浅显易懂,强烈推荐! 2.从向量到距离计算 SVM = Support Vector Machine,我们在Support Vector Machine中, 看到这个单词-vector(向量).是的,SVM中的大量计算都是建立在向量基础上的,所以这篇做一个简短的知识回顾,会涉及到的内容包括: 向量是什么 它的模长 它的方向 如何加减向量 什么是点积 如何将一个向量映射到另一个向量上 超平面的方程是什么 如何计算间隔 2.1 什么是向量 如

3D数学基础学习之向量一

向量-数学定义 对数学家而言,向量就是一个数字列表,对程序员而言则是另一种相似的概念,数组. 向量-几何定义 a.向量的大小就是向量的长度(模),向量的长度非负 b.向量的方向描述了空间中向量的指向. 负向量 a.运算法则 b.几何解释 得到一个与原向量大小相等,方向相反的向量 标量与向量的乘法 a.运算法则 标量与向量的乘法非常直接,将向量的每个分量都与标量相乘即可.标量与向量称的顺序并不重要,但经常 把标量写在坐标.数学表达式为: b.几何解释 向量乘以标量k的效果:以因子|k|缩放向量的长

九. 常用类库、向量与哈希5.向量及其应用

Vector(向量)是 java.util 包中的一个类,该类实现了类似动态数组的功能. 向量和数组相似,都可以保存一组数据(数据列表).但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一种类似于"动态数组"的功能,向量与数组的重要区别之一就是向量的容量是可变的. 可以在向量的任意位置插入不同类型的对象,无需考虑对象的类型,也无需考虑向量的容量. 向量和数组分别适用于不同的场合,一般来说,下列场合更适合于使用向量: 如果需要频繁进行对象的插入和删除工作,或者因为需要处理的对

【Unity3d游戏开发】Unity3D中的3D数学基础---向量

向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3D数学知识. 一.向量概念及基本定义 1.向量的数学定义 向量就是一个数字列表,对于程序员来说一个向量就是一个数组. 向量的维度就是向量包含的"数"的数目,向量可以有任意正数维,标量可以被认为是一维向量. 书写向量时,用方括号将一列数括起来,如[1,2,3] 水平书写的向量叫行向量 垂直书

Java知多少(78)Java向量(Vector)及其应用

Vector(向量)是 java.util 包中的一个类,该类实现了类似动态数组的功能. 向量和数组相似,都可以保存一组数据(数据列表).但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一种类似于“动态数组”的功能,向量与数组的重要区别之一就是向量的容量是可变的. 可以在向量的任意位置插入不同类型的对象,无需考虑对象的类型,也无需考虑向量的容量. 向量和数组分别适用于不同的场合,一般来说,下列场合更适合于使用向量: 如果需要频繁进行对象的插入和删除工作,或者因为需要处理的对象数目不定