在 gsl 中分配复数值

2023-12-10

我正在尝试使用 GSLcomplex numbers, complex vectors and complex matrices在我的项目中。我使用的是VS2010,我在中添加了库的地址配置属性>C/C++>常规>其他包含目录。但我有一个愚蠢的问题。据我了解,我不能使用=分配两个gsl_complex, gsl_vector_complex or gsl_matrix_complex对彼此。

对于向量我必须使用gsl_vector_complex_set对于矩阵gsl_matrix_complex_set。但是对于gsl_complex,我只发现GSL_SET_COMPLEX其中我应该将实部和虚部分别作为两个参数给出:

GSL_SET_COMPLEX (zp, real, imaginary)

在我的代码中我有这样的功能:

gsl_complex cmx, cmx2;
void vector_complex_exp(gsl_vector_complex *v)
{
    for (i = 0; i < v->size; i++)
    {
        gsl_vector_complex_set(v, i, gsl_complex_exp(gsl_vector_complex_get(v, i)));
    }
}

使用这个,我得到以下错误:

错误 LNK1120:2 未解析的外部引用。

错误 LNK2001:无法解析的外部符号“_hypot”。

错误 LNK2001:无法解析的外部符号“_log1p”。

错误 LNK2001:无法解析的外部符号“_log1p”。

我不明白这些错误背后的原因。但我这样重写我的代码:

void vector_complex_exp(gsl_vector_complex *v)
{
    for (i = 0; i < v->size; i++)
    {
        cmx = gsl_vector_complex_get(v, i);
        //cmx2 = gsl_complex_exp(cmx);
        gsl_vector_complex_set(v, i, cmx2);
    }
}

这里当 for 的第二行被注释时,没有错误。但是当我取消注释时,我得到以下信息:

错误 LNK1120:2 个未解析的外部引用。

错误 LNK2001:无法解析的外部符号“_log1p”。

错误 LNK2019:在函数“_gsl_complex_div”中引用未解析的外部符号“_hypot”。

错误 LNK2019:在函数“_gsl_complex_logabs”中引用未解析的外部符号“_log1p”。

我没有_gsl_complex_div or _gsl_complex_logabs我的代码中的函数。所以我很确定问题出在这里的分配上。但我也不能在这里使用 GSL_SET_COMPLEX 。

有人可以帮我弄这个吗?难道真的没有办法直接给gsl_complex赋值吗?


如果您在这里发布所有代码会更好,因此,我立即使用了以下代码最低的例子GSL 的。我做了一些小改变:

#include <stdio.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_eigen.h>

int main(void)
{
double data[] = { -1.0, 1.0, -1.0, 1.0,
    -8.0, 4.0, -2.0, 1.0,
    27.0, 9.0, 3.0, 1.0,
    64.0, 16.0, 4.0, 1.0 };

gsl_matrix_view m
    = gsl_matrix_view_array(data, 4, 4);

gsl_vector_complex *eval = gsl_vector_complex_alloc(4);
gsl_matrix_complex *evec = gsl_matrix_complex_alloc(4, 4);

gsl_eigen_nonsymmv_workspace * w = gsl_eigen_nonsymmv_alloc(4);

gsl_eigen_nonsymmv(&m.matrix, eval, evec, w);

gsl_eigen_nonsymmv_free(w);

gsl_eigen_nonsymmv_sort(eval, evec, GSL_EIGEN_SORT_ABS_DESC);

{
    int i, j;

    for (i = 0; i < 4; i++)
    {
        gsl_complex eval_i
            = gsl_vector_complex_get(eval, i);
        gsl_vector_complex_view evec_i
            = gsl_matrix_complex_column(evec, i);

        printf("\n eigenvalue = %g + %gi\n",
            GSL_REAL(eval_i), GSL_IMAG(eval_i));
        printf(" eigenvector = \n");
        for (j = 0; j < 4; ++j)
        {
            gsl_complex z =
                gsl_vector_complex_get(&evec_i.vector, j);
            printf("        %g + %gi\n", GSL_REAL(z), GSL_IMAG(z));
        }
    }
}

gsl_vector_complex_free(eval);
gsl_matrix_complex_free(evec);

system("pause");

return 0;
}

该代码的输出:(从红色箭头和下面来看,与 GSL 示例中的预期输出不匹配) 要获得我的输出,您需要 IDE(我使用 Visual Studio 2015):

  1. 进入“your_application”属性页 -> 配置属性 -> VC++ 目录 -> (右窗格)行可执行目录 type: C:\用户\...(您的 GSL 构建目录路径)...\gsl\Release;$(可执行路径)
  2. 同上。排队包括目录 type: C:\用户\...(您的 GSL 构建目录路径)...\gsl;$(包含路径)
  3. 同上。排队图书馆目录 type: C:\用户\...(您的 GSL 构建目录路径)...\gsl\Release;$(库路径)
  4. 下面,在左窗格中,选择 C/C++ -> Peprocessor -> (右窗格)预处理器定义 type: WIN32;_DEBUG;_CONSOLE;GSL_DLL;%(预处理器定义)(我使用调试模式,创建空控制台应用程序)。保存设置(按“应用”和“确定”按钮)
  5. 复制并放入应用程序项目文件夹的 Debug 目录中gsl.dll and dll from C:\用户\...(您的 GSL 构建目录路径)...\gsl\发布目录
  6. 构建您的应用程序并运行它
  7. NOTE!:一开始,最好使用目标应用程序的编译器重建 GSL - 这样工作就能得到保证。

祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 gsl 中分配复数值 的相关文章

随机推荐

  • 行号不显示?

    我发现我的程序存在一些问题 我使用 log4j 进行日志记录 但是 在日志文件中 所有行号都变成 对话模式如下 log4j appender file layout ConversionPattern d dd MM yyyy HH mm
  • Rcpp:将 C 数组作为 NumericMatrix 返回到 R

    include
  • IntelliJ IDEA 中创建了错误的 Manifest.mf .jar

    我正在尝试通过 IntelliJ IDEA 的 jar 工件将使用 OptaPlanner 6 0 1 库的项目打包到 jar 中 而不是包含标准的 manifest mf Manifest Version 1 0 Main Class a
  • CSS - 有两个切角的按钮[重复]

    这个问题在这里已经有答案了 大家好 我想创建一个
  • rgdal - 读取 ESRI 地理数据库 (gdb) 中的表

    我正在尝试使用 R 从 ESRI 地理数据库 gdb 读取没有几何图形的表 readOGR 抛出错误 因为没有定义几何图形 这是有意义的 library rgdal readOGR gSSURGO CO gdb mutext Error i
  • 如何创建 NSManagedObjectContext

    在 iPhone 的核心数据中 我在尝试将数据保存到NSManagedObjectContext 我相信我的问题都与我使用NSManagedObjectContext这是在多个线程中使用的 所以我想创建一个新的NSManagedObject
  • 我如何使用pyqt5中的QTextEdit显示html的所有样式(包括css的样式)

    Python 3 6 PYQT 5 12 1 我准备通过pyqt5来展示我需要的样式 并且我知道pyqt5中的QTextEdit可以很好地显示html代码 我有一些web开发经验 所以我决定使用html css来展示我的样式 但是 在 cs
  • 如何更改 TRichEdit 中某些字符的颜色? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我正在做一个 Delphi 7 项目 我必须让用户输入一个数字 向下的层 来构建圣诞树
  • 返回十六进制 UUID 作为 Django 模型 charfield 的默认值

    我尝试创建一个具有从 uuid4 生成的标识符的模型 但我想要的不是常规的 uuid 而是标识符具有十六进制 uuid 格式 不带 这是我尝试过的 class Model models Model identifier models Cha
  • 使用 SQL 搜索 DB2 进行分页的最快/最有效的方法

    现在我执行两个单独的 SQL 语句 其中一个执行SELECT COUNT 与搜索语句的标准基本相同 我不是最擅长做出这些陈述 有时有点慢 我想知道是否有更好的方法来做我所做的事情 可能只执行一条 SQL 语句并在 PHP 中执行更多工作 这
  • 为什么“密封”会影响 IDisposable 的实现?

    看完答案后here 我决定将我的课程标记为密封以简化I一次性执行 为什么sealed会影响IDisposable的实现 例如GC SuppressFinalize this 不需要调用 请解释发生了什么事 我需要能够向其他开发人员解释为什么
  • 我如何使用VBA代码合并多个pdf文件

    我有一个包含多个 pdf 文件路径的表 现在我需要一个 VBA 代码将所有这些文件合并到一个 pdf 文件中 注意 要合并的 pdf 文件数量会不时变化 Sub Combine PDFs Demo Dim i As Integer coun
  • 无法解构“response.profileObj”的属性“名称”,因为它未定义

    const navigate useNavigate const responseGoogle response gt localStorage setItem user JSON stringify response profileObj
  • PHP:Require() 和类层次结构

    我主要是 C C 程序员考虑这个问题 这可能有助于正确看待问题 我无法找到我的问题的简单答案 所以如果有现成的答案 我深表歉意 这似乎是一个非常普遍的问题 假设我有class A 这是一个实例的容器class B class B反过来 是一
  • R 中的 For 循环返回错误“找不到对象”

    我正在学习 R 并编写了我的第一个 for 循环 对于 1000 次迭代 我创建了 4 个向量 每个向量的维度分别为 10 100 1000 和 10000 个元素 这些所谓的 theta1 值无法被识别 我当时尝试运行一个 theta1
  • 扩展和过滤 MS Graph API 不起作用

    我需要得到一个eventMessage来自与特定关联的用户邮箱event 我有活动的iCalUId但我无法对其进行过滤 users roomEmailAddress messages expand microsoft graph event
  • 插入文件时高级驱动服务返回空响应错误

    这是从如何使用Advanced Drive服务上传文件 我的 Web 应用程序包含一个数据文件上传表单 然后将其存储在 Google 云端硬盘上 完整代码在下面的片段中 我在使用以下代码行时遇到问题 var file Drive Files
  • Keycloak:检索所有可用的客户端会话

    我正在使用 Keycloak 来保护我的 Spring 应用程序 在 Keycloak 中注册为my app客户 现在我想检索该客户端的所有活动会话 如果我可以使用 keycloak admin client 来做到这一点 那就太好了 因为
  • 如何使用命令行curl显示请求标头

    命令行curl可以通过使用显示响应头 D选项 但我想看看它正在发送什么请求标头 我怎样才能做到这一点 curl s v or verbose选项显示 HTTP 请求标头等 这是一些示例输出 curl v http google com Ab
  • 在 gsl 中分配复数值

    我正在尝试使用 GSLcomplex numbers complex vectors and complex matrices在我的项目中 我使用的是VS2010 我在中添加了库的地址配置属性 gt C C gt 常规 gt 其他包含目录