小编nix*_*gle的帖子

如何将列表{element,...}转换为元组列表{{i,element},...}?

给出一些清单

numbers = {2,3,5,7,11,13};
Run Code Online (Sandbox Code Playgroud)

我该如何翻译

translatedNumbers = {{1,2},{2,3},{3,5},{4,7},{5,11},{6,13}}
Run Code Online (Sandbox Code Playgroud)

简洁?

我知道如何使用程序化的编程风格如下:

Module[{lst = {}, numbers = {2, 3, 5, 7, 11, 13}},
  Do[AppendTo[lst, {i, numbers[[i]]}], {i, 1, Length@numbers}]; lst]
Run Code Online (Sandbox Code Playgroud)

但对于我来说这是一个简单的操作,这种情况相当冗长.例如,相当于haskell的是

numbers = zip [1..] [2,3,5,7,11,13]
Run Code Online (Sandbox Code Playgroud)

我不禁想到在Mathematica中有一个更简洁的方法来"索引"一个数字列表.

可能的答案

显然我不允许在灯泡熄灭后回答我自己的问题,除非我有100个"代表".所以我只想把答案放在这里.让我知道我是否应该以不同的方式做任何事情.

在问过这个之后我现在感觉有点傻了.因为如果我将mathematica列表视为矩阵,我可以转置它们.因此,我的问题的答案(也许不是最好的)如下:

Transpose[{Range@6, {2, 3, 5, 7, 11, 13}}]
Run Code Online (Sandbox Code Playgroud)

编辑为任意输入列表工作,我认为如下:

With[{lst={2, 3, 5, 7, 11, 13}},Transpose[{Range@Length@lst,lst}]]
Run Code Online (Sandbox Code Playgroud)

将工作.我可以做得更好吗?

wolfram-mathematica

7
推荐指数
2
解决办法
440
查看次数

多核/ NUMA上的CPUID

我正在为我的爱好操作系统研究CPU检测和一般环境检测代码.有没有需要多次调用CPUID的情况?也就是说,如果系统有多个内核,操作系统是否需要在每个内核上调用CPUID?NUMA也是如此.

无论是AMD英特尔 CPUID手册都对这个不清楚.在osdev wiki上有一篇文章提到调用CPUID称为检测CPU拓扑,但是我的阅读并不清楚CPUID需要调用的时间和次数.

x86 osdev low-level cpuid

5
推荐指数
1
解决办法
1096
查看次数

使用MinGW,freeglut和glew编译简单的静态OpenGL 4.0程序

问题在于标题,我将尝试列出我已经尝试过的内容,等等.

首先,根据我的理解,为了在Windows上使用OpenGL 4.0,您必须扩展和/或绕过默认的Windows库,因为它只提供OpenGL 1.1.

所以我们安装了MinGW C:/MinGW/.接下来,我通过从项目站点下载tarball来设置FreeGLUT .提取和通过根据运行的生成文件编译指令与未成年人加入到命令.--prefix./configure

./configure --prefix=/c/Users/Owner/root/
make all
make install 
Run Code Online (Sandbox Code Playgroud)

现在我有freeglut /c/Users/Owner/root/lib/,/c/Users/Owner/root/include/等等.接下来是GLEW,就我所知,我的问题孩子.

项目站点下载源存档(直接1.7.0.zip链接).编译有点复杂,我目前的配方来自堆栈溢出问题" 用mingw构建窗口上的glew ".缩写形式如下:

mkdir lib/
mkdir bin/
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
ar cr lib/libglew32.a src/glew.o
gcc -DGLEW_NO_GLU -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c
gcc -shared …
Run Code Online (Sandbox Code Playgroud)

c++ opengl winapi glew freeglut

5
推荐指数
1
解决办法
5494
查看次数

新的类型安全枚举是否定义为从0开始?

给出以下C++ 11代码

enum class Foods {
  Apple,
  Pear,
  Banana
};
Run Code Online (Sandbox Code Playgroud)

std::cout << (unsigned int)Foods::Apple << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出0?

这对于MSVC 2012和gcc 4.7.0都是如此,但是我对C++ 11标准指定的内容更感兴趣.也就是说,可移植代码是否可以依赖枚举默认为0来表示第一项的值?

c++ enums c++11

2
推荐指数
2
解决办法
933
查看次数

标签 统计

c++ ×2

c++11 ×1

cpuid ×1

enums ×1

freeglut ×1

glew ×1

low-level ×1

opengl ×1

osdev ×1

winapi ×1

wolfram-mathematica ×1

x86 ×1