美文网首页
6.3 数学操作符(Math Operators)

6.3 数学操作符(Math Operators)

作者: 代码咖啡 | 来源:发表于2018-08-27 12:46 被阅读14次

文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!

6.3 数学操作符(Math Operators)

Cg语言对向量的数学操作提供了内置的支持,Cg中的数学操作符有:*乘法、/除法、-取反、+加法、减法、%求余、++——*=/=+=-=。后面四种运算符有时被归纳入赋值操作符,不过它们实际上进行数学计算,然后进行赋值, 所以这里也放入数学操作符中进行说明。

在文献【2】第3.3节Math Expressions中,其行文意思容易让人觉得“好像只有加减乘除等运算可以对向量进行”,实际上经过我的测试,++——等数学运算符同样可以使用在向量上。所以“Cg语言对向量的数学操作提供内置支持 ” 这句话是非常准确的。

需要注意的是:求余操作符%。只能在int类型数据间进行,否则编译器会提示错误信息:

error C1021: operands to “%” must be integral.

当使用这些数学操作符对一个标量和一个向量进行运算时,标量首先被复制到一个长度相同的向量中,然后进行运算,例如下面的代码形式是正确的:

void function() {
    float2 a = float2(1.0, 1.0); 
    float b = 2.0;
    f *= d;
    f *= 2.0;
} 

相关文章

网友评论

      本文标题:6.3 数学操作符(Math Operators)

      本文链接:https://www.haomeiwen.com/subject/zcbziftx.html