当前位置: 首页 > news >正文

ANSYS Swan 语言 forward 迭代 (三) - resume 状态保持

ANSYS Swan 相比前身 Scade 6,引入了新的迭代特性 forward。本文将描述 forward 中将当前迭代结果保留,作为下一次迭代开始时输入的特性 forward resume。

forward resume 特性使得 forward 结构的一次激活的结果,作为下一次 forward 结构激活的输入。使用用例如下描述

node forwardTest (arr: int32^5)
returns (o: int32)
{
let o = forward resume 
        <<5>> with [ai] = arr;
        let s = last 's + ai;
        returns (s : last = 0);   
}

在上面的样例中,forward 体的语义为将输入数组的元素进行累加。由于resume 作用在 forward 之后,因此,在迭代结束后,s 中保存的计算结果不会被销毁,而是会会被保持。在下一次 forward 迭代激活时,上一次激活 forward 的计算结果将作为 s 在本次迭代过程中的初始值。

对上面具体的例子,输出o 跟随输入 arr 的变化可以是

step 1

arr: [1.0, 2.0, 2.0, 3.0, 5.0] 
o: 13.0 

step 2

arr: [1.0, 3.0, 5.0, 2.0 ,7.0]
o: 31.0 

step 3

arr: [9.0, 6.0, 6.0, 2.0, 1.0]
o: 55.0 

注意到,每一次 forward 激活,上一次 forward 迭代的计算结果都被保留。

这里再举一个例子,下面的例子为矩阵元素求和。

function forwardTest (mat: int32^4^3)
returns (o: int32)
{
let o = forward 
        <<3>> with [ai] = mat;
        let sum = forward resume
                  <<4>> with [aij] = ai;
                  let s = last 's + aij;
                  returns (s : last = 0);
        returns (sum);
}

在上面的例子中,外层 forward 对数组 mat 的第一维度遍历,在内层 forward 中,使用了 resume 特性,遍历后将保留输出的 s 的状态。如此,达到遍历数组元素求和的效果。

相关文章:

  • el-table 合并单元格
  • keil编译报错,error:xx.h:NO such file or directory 解决办法
  • StarRocks BE宕机排查
  • 【鸿蒙开发】Hi3861学习笔记- TCP客户端
  • 卷积神经网络 - AlexNet
  • Java学习总结-Map集合的实现类
  • 模数转换电路(A/D转换器)
  • 第一天学爬虫
  • <Transition>和<KeepAlive>组件一起用有什么用
  • 椭圆曲线密码学(ECC)深度解析:下一代非对称加密的核心
  • 【react】在react中async/await一般用来实现什么功能
  • 动态规划二维费用的背包系列一>一和零
  • 【CXX-Qt】5.1 CXX-Qt 构建系统
  • Go 代理爬虫
  • 《基于SpringBoot的图书网购平台的设计与实现》开题报告
  • leetcode11.盛水最多的容器
  • 「Unity3D」使用C#获取Android虚拟键盘的高度
  • hackmyvm-immortal
  • PCL 1.12.0 释放std::free(ptr)问题解决
  • 3.25-2request库
  • 哈尔滨做网站/公众号如何推广
  • 农村建设开发有限公司网站/宁波seo优化
  • 长春专业做网站公司排名/安卓优化清理大师
  • 内蒙古网络/爱站网seo工具包
  • 做白酒的网站/福州网站优化
  • 做网站要多长时间/广州专门做seo的公司