SQL Server 2008,数字库,C ++,LAPACK,内存问题

|| 我正在尝试以
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
。 是否有可能像内存指针一样“ 3”(通过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类。然后,您将逐列读取数据,将元素添加到向量中。因此,如果要对示例中显示的数组进行列排序,向量最终将看起来像:
//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可以做到这一点,因为标准确保向量使用连续的内存存储。 LAPACK例程都还需要传递给它的矩阵/向量的大小/尺寸(因此,您需要为函数调用计算/指定这些值)。 如果您可以发布要使用的特定LAPACK例程,我可以举一个更详尽的示例。     

要回复问题请先登录注册