小编Nic*_*mer的帖子

用于CMake源中大小写一致性的工具

CMake命令在lower,upper和mixed情况下有效.然而,将所有这些混合在一个文件中会降低CMake代码的可读性.

是否有自动纠正这种风格不一致的工具?

coding-style lint cmake

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

C++:从一个初始化函数中初始化多个数据成员

我有一个C++类,有两个数据成员,例如,

class mytest() {
   public:
     mytest():
        a_(initA()),
        b_(initB())
     {};
     virtual ~mytest() {};

   private:
     double initA() {
        // some complex computation
     }
     double initB() {
        // some other complex computation
     }

   private:
       const double a_;
       const double b_;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然,initAinitB不能像上面勾画的那样分开.二者a_b_可以由一个大的复杂的计算,其中的值被初始化b_取决于中间结果中的计算a_,例如

void mytest::init() const {
   const double a = 1.0 + 1.0;    // some complex computation
   const double b = 2*(a + 1.0);  // another complex computation
   a = 2 …
Run Code Online (Sandbox Code Playgroud)

c++ initialization

6
推荐指数
1
解决办法
171
查看次数

Numpy int数组:查找多个目标int的索引

我有一个大的numpy数组(dtype=int)和一组数字,我想在该数组中找到,例如,

import numpy as np
values = np.array([1, 2, 3, 1, 2, 4, 5, 6, 3, 2, 1])
searchvals = [3, 1]
# result = [0, 2, 3, 8, 10]
Run Code Online (Sandbox Code Playgroud)

result阵列不必进行排序.

速度是一个问题,因为这两个valuessearchvals可能很大,

for searchval in searchvals:
    np.where(values == searchval)[0]
Run Code Online (Sandbox Code Playgroud)

不削减它.

任何提示?

python arrays numpy

6
推荐指数
1
解决办法
107
查看次数

将std :: complex <double>转换为__complex128

我正在尝试在GCC中使用quadmath库.我有一个复杂的双值我想要转换成相应的四精度复数,__complex128.以下是最小(非)工作示例:

#include <quadmath.h>
#include <complex>
#include <stdio.h>
using namespace std::complex_literals;

int main(){
   std::complex<double> x = 1 + 2i;
   std::printf("x = %5.5g + %5.5g\n", x.real(), x.imag()); 
   __complex128 y = 2+2i;
   y = x;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译此代码时

 g++ test.cpp -lquadmath -o test
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

test.cpp:10:6: error: cannot convert 'std::complex<double>' to '__complex128 {aka __complex__ __float128}' in assignment
y = x;
Run Code Online (Sandbox Code Playgroud)

如果我尝试用显式类型转换替换赋值行,

y = (__complex128) x;
Run Code Online (Sandbox Code Playgroud)

我得到了类似的错误

test.cpp:10:21: error: invalid cast from type 'std::complex<double>' to type '__complex128 {aka __complex__ __float128}'
y = …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point precision

6
推荐指数
1
解决办法
853
查看次数

在numpy数组中得到第k个维度的第i个切片

我有一个n维度numpy数组,我想获得-th维度的i第一个切片k.必须有比这更好的东西

# ... 
elif k == 5:
    b = a[:, :, :, :, :, i, ...]
# ...
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

6
推荐指数
1
解决办法
417
查看次数

Ansible:强制执行管道故障

今天早些时候,我们遇到了一个由以下 shell 管道引起的严重问题:

- name: get remote branches
  shell: git ls-remote -h git@bitbucket.org:orga/repo.git | sed 's_.*refs/heads/__g'
  register: branches_remote
Run Code Online (Sandbox Code Playgroud)

git命令失败,而是整个管道的返回码为0。这是默认的bash / sh的行为

要解决此问题,在 sh/bash 中,您可以set -o pipefailset -e. 是否有可能在 ansible 中做到这一点,最好是对我的所有shell命令全局进行?

error-handling bash shell pipe ansible

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

从稀疏数据创建PNG图像

我想在Python中存储PNG图像,其中RGB值由列表给出

entries = [
    [1, 2, [255, 255, 0]],
    [1, 5, [255, 100, 0]],
    [2, 5, [0, 255, 110]],
    # ...
    ]
Run Code Online (Sandbox Code Playgroud)

(行,列,RGB三元组),以及[255, 255, 255]有关图像总尺寸的默认值和信息.

使用PIL,我当然可以转换entries为密集的m-by n-by- 3matrix,但这不适合内存; 矩阵维数可以在万里.

是否有其他方法可以使用上述信息创建PNG图像?

python png image-processing sparse-matrix python-imaging-library

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

匹配"abc","d,e","",",f"`与组

我想正则表达式匹配字符串

"abc", "d,e"  , "", ",f"
Run Code Online (Sandbox Code Playgroud)

这样,组abc,d,e``和 ,f(没有引号)是分开匹配的.

随着小组

"([^"]*)"
Run Code Online (Sandbox Code Playgroud)

匹配这些"abc"位,我假设正则表达式

(?:\s*"([^"]*)"\s*,)\s*"([^"]*)"\s*
Run Code Online (Sandbox Code Playgroud)

会做的伎俩.但是,它只匹配abcd,e.

在regex101上创建了一个玩具示例来显示行为.

任何提示?

regex

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

Webpack:不同类型的多个入口点(JS、HTML、LESS、...)

我想使用 webpack 打包 Chrome 扩展程序。为此,我需要整理一堆JS文件,

  • background.js,
  • popup.js,
  • content.js,

和一些 HTML 和 CSS 文件,

  • popup.html,
  • popup.css,
  • content.css.

我想我将不得不使用多个入口文件,即,

module.exports = {
  entry: {
    background: './src/scripts/background.js',
    content: './src/scripts/content.js',
    popup: './src/scripts/popup.js',
    html: './src/popup.html',
    ccss: './src/styles/content.less',
    pcss: './src/styles/popup.less',
  },
  // ...
}
Run Code Online (Sandbox Code Playgroud)

使用指定的加载器,例如,

module: {
  loaders: [
    { test: /\.html$/, loader: 'file-loader' },
    { test: /\.less$/, loader: 'style!css!less' },
    // ...
    ],
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在为output规范而苦苦挣扎。JS 文件可以捆绑在一起,但我希望 HTML 文件也以 HTML 结尾。随着标准

output: {
  path: './build/',
  filename: '[name].js',
}, …
Run Code Online (Sandbox Code Playgroud)

html javascript css webpack

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

SWIG 编译的 C++/Python 代码的测试覆盖率

我有一个经典的 SWIG 设置,其中从 Python 调用一堆 C++ 函数。现在,在添加一些测试(在 Python 中)之后,我想获得 C++ 源代码的测试覆盖率。经典的Python方法是

nosetests --with-coverage --cover-package=mypackage
Run Code Online (Sandbox Code Playgroud)

但这仅适用于本机 Python 模块。事实上,这将返回mypackage.pySWIG 生成的文件的覆盖范围。

由于我需要覆盖 C++ 文件(/SWIG 生成的共享库),因此--coverage肯定需要添加编译和链接器标志。但不知道从那里去哪里。

有什么提示吗?

c++ python swig test-coverage

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