首页 > 其他分享 >SIMD与函数式

SIMD与函数式

时间:2022-10-25 13:12:34浏览次数:49  
标签:27 const 函数 SIMD var Float32x4

SIMD

"单指令,多数据",主要用在3D图形运算,物理模拟等项目中。

//可以实现数组的一次性相加
var a = SIMD.Float32x4(1, 2, 3, 4);
var b = SIMD.Float32x4(5, 6, 7, 8);
var c = SIMD.Float32x4.add(a, b); // Float32x4[6, 8, 10, 12]
//通常可以使用在矢量运算上:
v + w = 〈v1, …, vn〉+ 〈w1, …, wn〉
      = 〈v1+w1, …, vn+wn〉

数据类型如Float32x4:四个 32 位浮点数,SIMD支持各种数学运算

函数式

  1. 柯里化把一个多参数函数拆成一系列单参数函数。
function add (a) {
  return function (b) {
    return a + b;
  }
}
// 或者采用箭头函数写法
const add = x => y => x + y;
const f = add(1);
f(1) // 2
  1. 函数合成:
const compose=f=>g=>x=>f(g(x));
const f=compose(x=>x*4)(x=>x+2);
f(2);
  1. 参数倒置:改变函数前两个参数的顺序。
var three = (a, b, c) => [a, b, c];
var flip = f.flip(three);
flip(1, 2, 3); // => [2, 1, 3]
  1. 执行边界(until)指的是函数执行到满足条件为止。
condition = x => x === 5;
until = f.until(condition, inc);
until(3) // 5
  1. 队列操作
f.head(5, 27, 3, 1) // 5
f.last(5, 27, 3, 1) // 1
f.tail(5, 27, 3, 1) // [27, 3, 1]
f.init(5, 27, 3, 1) // [5, 27, 3]
  1. 合并操作:
f.concat([5], [27], [3]) // [5, 27, 3],把多个数组合并为一个
f.concatMap(x => 'hi ' + x, 1, [[2]], 3) // ['hi 1', 'hi 2', 'hi 3'],处理后合并为一个
  1. 配对操作:zip把两个队列的成员一一配对合并为一个队列,不等长的话会把多出来的成员忽略,zipwith第一个参数是函数。
let a = [0, 1, 2];
let b = [3, 4, 5];
let c = [6, 7, 8];
f.zip(a, b) // [[0, 3], [1, 4], [2, 5]]
f.zipWith((a, b) => a + b, a, b, c) // [9, 12, 15]

标签:27,const,函数,SIMD,var,Float32x4
From: https://www.cnblogs.com/mengyiqwq/p/16824502.html

相关文章

  • 欧拉函数积性性的证明
    若互质,则由互质可知无公因数,其中为的质因数,为的质因数,而无公因数所以互不相同,所以均为的质因数且为质因数的全集所以所以......
  • BZOJ 2190([SDOI2008]仪仗队-O(n)线性筛欧拉函数)
    2190:[SDOI2008]仪仗队TimeLimit: 10Sec  MemoryLimit: 259MBSubmit: 521  Solved: 331[​​Submit​​][​​Status​​][​​Discuss​​]Descri......
  • BZOJ 3110([Zjoi2013]K大数查询-区间第k大[段修改,在线]-树状数组套函数式线段树)
    3110:[Zjoi2013]K大数查询TimeLimit: 20Sec  MemoryLimit: 512MBSubmit: 418  Solved: 235[​​Submit​​][​​Status​​][​​Discuss​​]Des......
  • execel函数
    >>LOOKUP1,LOOKUP(value=996,array=A1:A19)即LOOKUP(查找值,查找范围)查找条件范围必需升序排序。查找array中小于或等于value的最大值2,LOOKUP(value=996,array=A1......
  • C++_函数指针/回调函数/std::function/std::bind
    类成员函数指针指向类中的非静态成员函数#include<iostream>#include<functional>#include<algorithm>#include<vector>usingnamespacestd;//函数指针指向一......
  • JavaScript高级程序设计笔记11 期约与异步函数(Promise & Async Function)
    期约与异步函数ES6新增Promise引用类型,支持优雅地定义和组织异步逻辑。ES8增加了使用async和await关键字定义异步函数的机制。异步编程JavaScript这种单线程事件循环模......
  • 复变函数复习笔记1.1复数
    复变函数复习笔记bywysng第一章复数复数的来源:\[i^2=-1,i=\sqrt{-1}\]定义:称有序实数对\((x,y)\)......
  • 函数002
    函数的实参(调用):真实给函数传递的参数:常量,变量,表达式,函数,有明确定义的值,必须要有函数的形参(定义):函数名后的变量,因为函数被调用后才能实例化,形式参数旨在内部有效,调用之后就......
  • Go语言输出函数fmt.Print、fmt.Printf、fmt.Println的用法区别
    fmt包的介绍fmt=format,是一种格式化输出函数汇总包,用于格式化输出fmt.Print===原样输出Printformatsusingthedefaultformatsforitsoperandsandwritesto......
  • Python教程Day12-函数(一)
    函数(一)一、函数的作用​​需求​​:用户到ATM机取钱输入密码后显示"选择功能"界面查询余额后显示"选择功能"界面取2000钱后显示"选择功能"界面特点:显示“选择功能”界面需要......