zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA

     
    简单介绍PrefixSum的实现。
     
     
    1. 基本介绍
     
    把一个序列从前向后逐个执行迭代(assocOp),每针对一个元素执行一遍迭代,针对一整行执行一次迭代(layerOp)。
     
    2. PrefixSum
     
    a. layers:抽象方法,返回层数,等于layerOp执行的次数;
    b. idLayer: 默认的layerOp,即没有动作,把输入原样返回;
     
    3. RipplePrefixSum
     
    每次只使用前一个元素对当前元素执行一次迭代,其他元素不进行迭代动作。
     
    apply重构之后为:
     
    a. offset只当前针对第几个元素进行迭代,当迭代到最后一个元素停止:
     
     
    b. 只针对当前元素执行assocOp:
     
     
    offset每次递增1,当offset与当前元素序号相等时,才执行assocOp;
     
    c. 当针对当前元素执行完assocOp后,执行一次layerOp:
     
     
    d. 把layerOp的结果,带入下一次迭代:
     
     
     
    一个迭代过程的例子如下:
     
    实际执行的例子如下:
     
    4. DensePrefixSum
     
    提升迭代效率,每次迭代一半。
     
    迭代过程如下:
     
    执行过程如下:
     
    5. SparsePrefixSum
     
     
    6. 附录
     
  • 相关阅读:
    关于DRY原则
    类型之惑
    ThoughtWorks测试
    编程非易事
    瀑布与迭代的真实区别
    对TDD原则的理解
    自我练习
    C# CreateProcess的测试
    乱侃OOD
    复杂系统的五个属性
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10992216.html
Copyright © 2011-2022 走看看