C-order/Fortran-order(Row-/Column-major order)
2024-08-28 13:11:14
1. row-major / column-major order
无论是行序优先还是列序优先,其实在计算机计算中,指的都是在线性空间(linear storage,如 RAM,也即连续内存存储 contiguous in ,memory)存储多维数组(multidimensional arrays)的方式。
数据的分布方式(data layout)对于在不同编程语言间正确地传递多维数组是十分关键的。
2. 地址计算
这里我们将多维数组的概念泛化为更高维。对于 d 维数组 N1×N2×⋯×Nd,该数组中的一个元素为 (n1,n2,…,nd)(其中 nk∈[0,Nk−1],从 0 开始计数),其在内存中的地址应当为:
行序(row-major order):对于行序,最后一维是连续的,
nd+Nd(nd−1+Nd−1(nd−2+Nd−2⋅(⋯+N2n1)⋯))=∑k=1d⎛⎝∏ℓ=k+1dNℓ⎞⎠nk列序(column-major order):对于列序,第一维是连续的,
n1+N1⋅(n2+N2⋅(n3+N3⋅(⋯+Nd−1nd)⋯)))=∑k=1d(∏ℓ=1k−1Nℓ)nk
references
最新文章
- IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)
- 461. Hamming Distance
- 【leetcode】 Longest Valid Parentheses (hard)★
- linux 同步IO: sync msync、fsync、fdatasync与 fflush
- Java客户端通过Http发送POST请求上传文件到web服务器
- 【英语】Bingo口语笔记(37) - 动物的多种表达
- asp.net等项目编译失败的原因之不能写入
- ListView的setOnItemClickListener和setOnItemLongClickListener同时响应的问题
- matlab拟合三维椭球
- Geometric Shapes (poj3449多边形相交)
- OCI_INVALID_HANDLE 什么原因
- MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为List<;MongoDBRef>;增加扩展方法
- [算法&;数据结构]深度优先搜索(Depth First Search)
- django之信号
- gitlab导入现在git项目
- 学习 Spring (九) 注解之 @Required, @Autowired, @Qualifier
- HTML head标签内部常用设置
- SNF快速开发平台成长史V4.5-Spring.Net.Framework-SNF软件开发机器人
- [日常] Go语言圣经-字节切片与字符串
- ng-深度学习-课程笔记-0: 概述
热门文章
- spring接收对象数组实例
- [D3] Better Code Organization with selection.call() with D3 v4
- [Android 4.4.2] 泛泰A870 Mokee4.4.2 20140531 RC1.0 by syhost
- [Ramda] Complement: Logic opposite function
- 3、Pycharm使用
- PL/SQL精明的调用栈分析
- Android学习笔记:Home Screen Widgets(2):关于Widget
- js进阶 11-19 jquery如何查找选择器的第一个父亲元素和第一个定位的父元素
- adobe-flash-player离线下载方法
- 从程序员的角度分析微信小程序(编程语言:用到什么学什么)