c++ - 为什么 lapacke 中复变量的虚部不起作用?
问题描述
我在 Windows 中使用 TDM gcc 64 位编译器
我的标题
#include "lapacke.h"
#include "lapacke_config.h"
我有一个像这样的简单代码
lapack_complex_double x = {8.0, 6.0};
printf( "x = (%6.2f,%6.2f)\n", x.real, x.imag);
首先,它给了我以下错误和警告
warning: excess elements in scalar initializer
lapack_complex_double x = {8.0, 6.0};
&
error: request for member 'real' in something, not a structure or union
printf( "x = (%6.2f,%6.2f)\n", x.real, x.imag);
我将代码更改如下
lapack_complex_double x = {8.0, 6.0};
printf( "x = (%6.2f,%6.2f)\n", lapack_complex_double_real(x),
lapack_complex_double_imag(x) );
代码是用同样提到的警告编译的,但结果是
x = ( 8.00, 0.00)
看来警告是一个重要的错误。
解决方案
没错,警告是一个重要错误,它告诉您这不是使用 lapacke 库初始化复杂类型的方式。你需要使用:
x = lapack_make_complex_float(8.0, 6.0);
请参阅此问题中的示例。这应该可以为您工作。
推荐阅读
- python - 'scrapy crawl' 做事但不做文件
- javascript - npm package csvtojson CSV Parse Error: Error: unclosed_quote
- javascript - 在长度受限的输入上运行 JavaScript 代码
- javascript - 拆分后如何从数组中删除两个连续的双引号
- python - 如何对模型的元素求和并在 django 模板中返回总数?
- reactjs - 自定义 NPM 包在构建期间抛出错误
- apache-camel - 拆分器和交易骆驼路线
- reactjs - 将输入值存储在数组中不起作用(反应)
- javascript - 我们可以排除字母数字 javascript 正则表达式中的特定字符吗?
- apache - 如何限制 apache 中其他用户的图标/readme.md?