小编Ste*_* Lu的帖子

我想要 __builtin_popcountll 的两种实现

我有一些代码,我想运行快速的内置 CPU 指令popcnt(当__builtin_popcountll使用适当的标志编译时,例如 withg++ -mpopcntclang++ -march=corei7,会发生这种情况),但也能够在cpuid显示 CPU 不支持时回退到代码硬件指令。

当然,为了获得我相信编译器人员已正确实现的回退代码(因此我不必引入 C 或 asm 代码来执行我的 popcount),我需要一个单独的编译单元,该单元在编译时不使用-mpopcnt-march=corei7标志。

将单独编译的代码链接在一起是唯一的方法吗?是否没有编译器内在函数或其他类型的提示或其他我不知道的内置函数可以用来让它生成回退 popcount 代码?

compiler-construction gcc bit-manipulation clang instructions

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

BLAS DGEMM:我可以将 C 作为 A 或 B 传递吗?

我想执行一串矩阵乘法,如果可以避免的话,我宁愿不分配新的矩阵。例如,我想计算 C = C * B (所以我将 C 作为A和传递C

我可以这样做吗(因为dgemmA和 都标记Bin变量)?

fortran blas lapack

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

使用双精度浮点精确到2 ^ 53实现整数乘法吗?

我问,因为我正在计算矩阵乘法,其中所有矩阵值都是整数.

我想使用LAPACK,以便获得正确的快速代码.将两个大整数(其乘积小于2^53)整数存储为doubles时,会产生double包含精确整数结果的整数吗?

math floating-point linear-algebra double-precision lapack

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

打字稿和正则表达式

打字稿说:

$1类型“ { (pattern: string, flags?: string): RegExp; new(pattern: string, flags?: string): RegExp; }”的值上不存在属性“ ”

通过查看TypeScript 0.8.2lib.d.ts附带的定义,可以解释该类型:

interface RegExp {
    /** 
      * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.
      * @param string The String object or string literal on which to perform the search.
      */
    exec(string: string): RegExpExecArray;
    /** 
      * Returns a Boolean value that indicates whether or not a pattern …
Run Code Online (Sandbox Code Playgroud)

javascript regex typescript

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

pstree中一个进程的花括号是什么意思?

该名男子页面不说明什么支架,支架部件(它是指线程),但我想知道什么只是括号表示.

从这个这里我可以看到,auditdnode都是这样.

? pstree
init???agetty
     ??atd
     ??auditd???{auditd}
     ??crond
     ??dbus-daemon
     ??dhclient
     ??6*[mingetty]
     ??ntpd
     ??rsyslogd???3*[{rsyslogd}]
     ??2*[sendmail]
     ??sshd???sshd???sshd???zsh???tmux
     ?      ??sshd???sshd???zsh???man???sh???sh???less
     ??tmux???2*[zsh]
     ?      ??zsh???node???{node}
     ?      ??zsh???pstree
     ??udevd???2*[udevd]
Run Code Online (Sandbox Code Playgroud)

我目前最好的猜测是,这意味着它们在输入时被阻止.

unix pstree

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

实时 git diff

我通常喜欢在查看 git diff 的同时输入 git commit 消息。

我非常喜欢git 的这个小 perl 插件产生的输出,并产生如下所示的输出git diff(这是一个屏幕截图git log -p,但你明白了:

在此输入图像描述

由于它突出显示了已更改的行的相应部分,因此很容易看出发生了什么变化。只是想分享这一点,因为它看起来不像很多人使用它,对我来说,它比使用外部单独的差异工具或类似的工具要好得多,因为这可以在终端上运行!一般来说,它比类似的东西更适合 unix-pipe,vimdiff尽管vimdiff在紧要关头也很方便。

无论如何,显示和讲述仅与这里的真正问题无关,即我可以设置一个终端窗口来显示 git diff,但要让它是动态的,以便当我保存文件它可以git diff为我刷新吗?基本上,这个想法是让终端窗口实时显示我将要提交的确切更改,这样我就可以直接从文本编辑器切换到输入命令,git commit同时读取整组更改,并且也可以通过 SSH 在 Linux 机器上实现此工作流程。

这将是一个非常棒的工作流程,我认为一点点 cmdline fu 就可以帮助我实现这一点,但我不太确定从哪里开始。看起来 OS X 和 Linux 需要单独的实现。我发现fswatch可能对我有用,显然它与 Linux 上的 inotify-watch 类似。我不应该只需要在我的 OS X 开发机器上进行此设置,但正如我之前提到的,通过 SSH 拥有此功能将是史诗般的。

还有其他快速而简单的 UNIXy 方法可以解决这个问题吗?

unix linux git macos fswatch

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

如果在Vim之外编辑文件,则保留撤消历史记录

在编辑器外编辑文件时,将清除Vim undofile.

我怎样才能得到它所以我可以将文件还原为旧版本,即使它是在Vim之外编辑的?这可能吗?

vim

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

OSX sed:如何在`s`操作的第二个字段中使用转义字符?

在OSX上:

bash-3.2$ echo "abc" | sed 's/b/\x1b[31mz\x1b[m/'
ax1b[31mzx1b[mc
Run Code Online (Sandbox Code Playgroud)

而在Linux上:

$ echo "abc" | sed 's/b/\x1b[31mz\x1b[m/'
azc
Run Code Online (Sandbox Code Playgroud)

并且z正确显示红色.

这是bash 3.2的限制吗?我的Linux测试在这里运行bash 4.1.2.

奇怪的是在我的Linux环境中工作时bash是3.2以下的版本,它也适用于那里.

此外,这可能是相关的,但可能不是:

bash-3.2$ echo "abc" | sed 's/b/^[[31mz^[[m/'
31mz$'m/'azc
Run Code Online (Sandbox Code Playgroud)

再次,具体到BSD sed.这是非常令人费解的:似乎有什么东西导致shell或sed以某种方式将命令的一些错位部分回应到终端?但是,它总是在命令的正确输出之前.那个美元符号来自哪里?

(不要被我的命令中的颜色混淆(在青色unicode字符之后看起来像是一个不太弯曲的>,这是我的提示),我使用语法高亮显示zsh)

在此输入图像描述

linux macos bash shell terminal

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

Vim:映射在命令行模式下工作的键序列

noremap <C-S> :update<CR>      
vnoremap <C-S> <ESC>:update<CR>
inoremap <C-S> <ESC>:update<CR>
Run Code Online (Sandbox Code Playgroud)

这些是我设置的绑定,通过保存缓冲区让Vim响应Ctrl + S. 我并没有真正使用它,但这对于断断续续/断开或与其他编辑器交互的时间非常方便,我们偶尔会被迫忍受这些编辑器,并且总是只提供用于提交更改的单个绑定.

无论如何,有时候,例如当Vim处于命令行模式(输入:命令或/搜索)时按Ctrl + S将失败,即使我使用这样的绑定:

noremap! <C-S> <ESC>:update<CR>
Run Code Online (Sandbox Code Playgroud)

它基本上退出命令条目(显然发送命令或搜索,这也是不受欢迎的,即使我绑定<ESC>!)并且无法运行:update.

如果我将Vim保留在命令行模式但仍然使用绑定,我怎样才能使它工作?

vim

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

如何显示合并提交中所做更改的差异?

当我写一堆代码时,我没有意识到我正处于合并的中间.现在git log -p不会向我展示这种变化的差异(它被自动提交为合并提交).

如何让它显示在我的日志差异历史记录中?

git

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