小编The*_*ist的帖子

在WXMaxima GUI中创建绘图

如何使绘制函数生成的图(如plot2d()位于WXMaxima GUI中而不是打开新的Windows?有人在我面前制作了这个图,我无法弄清楚他是如何做到的.

谢谢.

gnuplot maxima

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

OpenMP 指定 for 循环迭代的线程数

我正在使用以下命令在程序的可用线程上并行化单个循环:

#pragma omp parallel for num_threads(threads)
for(long i = 0; i < threads; i++)
{
    array[i] = calculateStuff(i,...);
}
Run Code Online (Sandbox Code Playgroud)

由于技术原因,我想保证线程号 0 执行i=0,线程号 1 执行i=1。换句话说,我总是想要i=omp_get_thread_num(). 这可能吗?

c++ parallel-processing multithreading openmp

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

将所有双打转换为整数以获得更好的性能,这只是一个谣言吗?

我有一个非常复杂和复杂的数据拟合程序,它使用Levenverg-Marquardt算法进行双精度拟合(基本上拟合类是模板化的,但我使用实例化它来加倍).拟合过程包括:

  • 计算误差函数(卡方)
  • 求解线性方程组(我使用lapack)
  • 计算关于参数的函数的导数,我想要拟合数据(通常是20多个参数)
  • 连续计算功能值:该功能是具有少量谐波的正弦和指数函数的复杂组合.

我的一位同事建议我至少使用整数至少10倍.我的问题是:

  1. 这是真的,我会得到那种改善吗?
  2. 将所有内容转换为整数是否安全?这有什么缺点?
  3. 对整个问题你有什么建议?你会怎么做?

该程序的开发是为了从在线信号中计算出一些参数,这意味着程序必须尽可能快,但我想知道是否值得启动将所有内容转换为整数的项目.

c++ math double performance integer

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

Linux程序是否像Windows程序一样可移植?

也许这是一个愚蠢的问题,但这是其中一个从人们在这里和那里说话中学到的,如果专业人士正确地描述了这种情况,我会很高兴.

谈到标准台式计算机,我发现Windows程序尽可能便携.我可以使用静态库链接编译任何32位软件,然后将该软件放在闪存驱动器上,它可以在世界上任何32位或64位的计算机上运行.我有超过10年的程序,他们仍然没有一个问题.

现在我也编程linux,但是在做linux程序时我没有考虑到这一点.我总是认为它应该在每个必须使用程序的系统中编译.一位同事告诉我,在两台Linux计算机上盲目地在两台计算机上运行相同的软件是错误的.但是......我在Windows上使用静态可执行文件执行此操作.我能在linux 2中做到这一点吗?

总结一下我的问题:在Linux上创建便携式软件的限制是什么,就像人们在Windows上做的那样?当然,假设目标计算机除了一些任意版本的glibc之外根本没有库.在我脑海中的模型中,所有库都应该是静态的.

c c++ linux windows portability

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

QList 默认参数错误消息(QList&lt;QVariant&gt; 的默认参数类型为 int)

我有以下方法(只有 1 个参数),我想适应用于 1 个以上的参数。我尝试使用默认参数,但这不起作用。(仅使用旧方法的原始代码工作正常)令我印象深刻的是该声明中省略了变量名称。为什么 ?

这是我原来的方法:

void importFile(QString *);
Run Code Online (Sandbox Code Playgroud)

这是我的新方法:

 void importFile(QString *, QList<QVariant> IMPORT_FILE_PARAMETERS =0 );
Run Code Online (Sandbox Code Playgroud)

当我编译这段代码时,Qt 告诉我“ QList IMPORT_FILE_PARAMETERS 的默认参数的类型为 int

问题是什么?我不使用 int - 他为什么要告诉我有关 int 的信息?

谢谢你的帮助

c++ parameters methods qt default-parameters

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

assert()在发布模式下是否充当身份功能?

该库使用assert()好像它是发布模式下的标识函数(当定义了NDEBUG时).问题是一些重要的代码被包装assert(),并且在发布模式下执行时我的测试被触发,因为这些重要的部分没有被调用.这里可以找到一个例子,其中随机字节生成器不会生成任何东西,并将导致无限循环.

个人轶事:我不喜欢assert(),我个人不会因为这些歧义问题而使用它.我听说很多项目都有严重错误,因为它,最近的EOS,当他们的单元测试没有检测到一些超出范围的数组时,因为NDEBUG是在发布模式下定义的并且没有触发.在这一点上,文档似乎并不清楚.是否assert()充当身份?

这个库(libbtc)似乎被广泛使用,我不明白为什么开发人员会这样做.这是一个可怕的错误,我应该分叉并删除所有这些断言?或者这是一些与C++不兼容的C事物?有人可以在这里解释一下正确的行动方案吗?

我用clang 6.

c++ unit-testing assert c++11

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

是否可以计算任意 std::regex 对象中的捕获组数?

对于任意std::regex,是否可以知道其中的捕获组数?

假设结果将由函数返回CountCaptures()。这就是我想得到的:

std::regex r1("(a)bc");
int i = CountCaptures(r1); // returns 1
std::regex r2("(a)(b)c");
int j = CountCaptures(r2); // returns 2
std::regex r3("abc");
int k = CountCaptures(r3); // returns 0
Run Code Online (Sandbox Code Playgroud)

我知道std::smatch在匹配字符串之后这是可能的,但问题是我从用户那里收到一个正则表达式,我需要在匹配任何字符串之前以某种方式限制捕获组。

c++ regex capture-group c++11 c++14

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

在numpy 2D数组上-如何在N行变化时将每行的最后N个数组元素设置为零

说,我有一个由20个元素组成的2D numpy数组,例如:

arr = np.array([[1, 2, 15, 7],[9, 11, 17, 19],[5, 7, 5, 8],[19, 4, 1, 45],[10, 7, 14, 8]])
Run Code Online (Sandbox Code Playgroud)

和一个额外的数组:

to_zero = np.array([0, 2, 1, 3, 2])
Run Code Online (Sandbox Code Playgroud)

现在,对于每一行,i我想使最后一个to_zero[i]元素等于零,因此最终我们将得到以下结果:

res = np.array([[1, 2, 15, 7],[9, 11, 0, 0],[5, 7, 5, 0],[19, 0, 0, 0],[10, 7, 0, 0]])
Run Code Online (Sandbox Code Playgroud)

我想在很大的数组上执行此操作。有什么方法可以向量化此操作,没有循环,也没有辅助数组吗?

python numpy vectorization

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

如何用汇编语言编写模数(C++中的%)

我不知道为了翻译%2我必须使用什么指令

#include <iostream>
using namespace std;

int main () {
     int number;
     cin >> number;
     if (number % 2 == 0) {    // I cannot translate this part.
       cout << "Even\n";
    }
    else {
       cout << "Odd\n";
    }
    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

c++ assembly

0
推荐指数
1
解决办法
8616
查看次数