为什么lapacke中复杂变量的虚部不起作用?
why imaginary part of complex variables in lapacke does not work?
我在 windows
中使用 TDM gcc 64 位编译器
我的headers
#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);
请参阅此问题中的示例。这应该可以为您工作。
Compiling lapacke example code?
我在 windows
中使用 TDM gcc 64 位编译器我的headers
#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);
请参阅此问题中的示例。这应该可以为您工作。
Compiling lapacke example code?