gpt4 book ai didi

c++ - SQL Server 2008,数值库,c++,LAPACK,内存问题

转载 作者:行者123 更新时间:2023-11-30 04:34:22 25 4
gpt4 key购买 nike

我正在尝试在 SQL Server 2008 中发送一个数字表,例如:

1att 2att 3att 4att 5att 6att 7att ... attn
--------------------------------------------
565 526 472 527 483 529 476 470 502
497 491 483 488 488 483 496 515 491
467 516 480 477 494 497 478 519 471
488 466 547 498 477 466 475 480 516
543 491 449 485 495 468 452 479 516
473 475 431 474 460 342 471 386 549
489 477 462 428 489 491 481 483 475
485 474 472 452 525 508 459 561 529
473 457 476 498 485 465 540 475 525
455 477 415 434 475 499 476 482 551
463 476 476 471 488 526 394 439 475
479 473 491 519 483 474 476 474 478
455 518 465 445 496 500 518 470 536
557 498 492 449 478 491 492 476 460
484 509 538 473 548 497 551 477 498
471 430 482 437 516 483 487 453 456
505 476 489 495 472 476 487 516 466
466 495 488 475 550 565 510 473 515
470 490 480 475 479 544 468 486 496
484 495 524 435 469 612 493 467 477
....
.... (several more rows)
....
511 471 529 553 539 501 477 474 494

通过 Visual Studio 2008(在 C++ 项目中)到数学库 LAPACK

是否可以将 SQL Server 中的表传递给 LAPACK(通过 visual studio 2008 中的 c++)像内存指针,或者存储所有表在 RAM 中,LAPACK 读取内存或指向内存的指针,但不写入文件并读取它

您能否建议如何将这样的表(可能是表在内存中的位置,或类似的东西)传递给 LAPACK?
(所以我可以通过 visual studio 2008 c++ 项目使用存储在 SQL Server 中的表的 LAPACK 进行一些计算)

----编辑---

@MarkD,正如您在回答中所说,您能否给出一个使用 std::vector 类使用示例中的想法计算 SVD 的示例?

最佳答案

LAPACK 要求发送给它的数据采用 FORTRAN 样式(列顺序)数组。您将无法将数据直接从 SQL 传递到 LAPACK,但需要将数据读入按列排序的连续内存数组,并将指向数组第一个元素的指针传递给感兴趣的 LAPACK 例程。

有许多用于 C/C++ 的 LAPACK 包装器可以使这变得容易得多。

编辑:刚刚看到您正在专门寻找如何传递这样的数组。正如我所提到的,有许多包装器可以执行此操作(只需搜索 C/C++ LAPACK)。创建数组的一种简单方法是使用 std::vector 类。然后你会逐列读取数据,将元素添加到你的 vector 中 - 所以如果你想对你在你的例子中显示的数组进行列排序,你的 vector 最终会看起来像:

//Column 1            Column 2            Column 3          ...   last element 
[565 497 467 488 ... 526 491 516 466 ... 472 483 480 547 ... ... 494]

然后您可以将第一个元素的内存位置传递给感兴趣的 LAPACK 例程,例如:

&myVector[0]

这可以使用 std::vector,因为标准确保 vector 使用连续的内存存储。 LAPACK 例程还需要您传递给它的矩阵/vector 的大小/维数(因此您需要为函数调用计算/指定这些值)。

如果您可以发布您要使用的特定 LAPACK 例程,我可以给出更详尽的示例。

关于c++ - SQL Server 2008,数值库,c++,LAPACK,内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6066676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com