提出这样的问题会让人良心不安……尽管如此,我发现在谷歌上搜索这个问题非常困难。我正在试验
lapack_int LAPACKE_dgesvd(
int matrix_order, char jobu, char jobvt,
lapack_int m, lapack_int n, double* a,
lapack_int lda, double* s, double* u, lapack_int ldu,
double* vt, lapack_int ldvt, double* superb);
Run Code Online (Sandbox Code Playgroud)
这承诺了奇异值分解。已经停下来害怕 Fortran 我在这里找到了一个信息金矿:http : //www.netlib.no/netlib/lapack/double/dgesvd.f
实际上,该链接的目标解释了所有参数,但 LAPACKE 特定的double* 极好(以及 order 参数,但在 FORTRAN 中,所有参数都是 COL_MAJOR)。
接下来,在这里http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/lapacke_dgesvd_row.c.htm我发现了一个似乎暗示“这是某种工作缓存”的程序.
但是,如果这是真的,LAPACKE_dgesvd_work(..)的原因是什么?
此外,我还有第二个问题:在示例中,他们使用min(M,N)-1作为super的大小。为什么?
遵循了教程 https://www.youtube.com/watch?v=yc0b5GcYl3U (如何在Blender中解开UV球)的说明后,我成功地在Blender程序中生成了纹理球。
现在,我希望在我的openGL C ++程序中使用它。为此,我遵循了http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Load_OBJexported教程,以便将球体另存为.obj文件(使用该教程中所述的三角剖分导出选项),并高兴地发现了很多结果中的“ v”,“ vt”和“ f”行。
但是,在分析文件时,我发现了642个顶点(v),561个“纹理顶点”(vt)[和1216个元素行(f)的预期结构为“ fa / at b / bt c / ct”]。
令我感到困惑的是:我对openGL的天真理解告诉我,纹理对象上的每个点在空间中都有一个位置(顶点),在纹理上有一个位置(UV点)。因此,我真的希望vs和vts的数量匹配。但是他们没有:642!= 561。怎么可能?
我的问题可能归结为“模块叫什么”。
我想在 Qt 5.4 中使用QSound类,显然在调用时“Qt5Multimedia”模块没有与 QtGui 和 QtCore 一起拉入
find_package(Qt5Widgets REQUIRED)
Run Code Online (Sandbox Code Playgroud)
所以我浏览了我的 Qt 5.4 安装(在 Debian 本地),实际上找到了一个目录
~/sw/Qt/Qt_5_4/5.4/gcc_64/lib/cmake/Qt5Multimedia
Run Code Online (Sandbox Code Playgroud)
然而,天真地添加
find_package(Qt5Multimedia REQUIRED)
Run Code Online (Sandbox Code Playgroud)
我的CMakeLists.txt因“找不到文件错误”的释义而失败。:
By not providing "FindQt5Multimedia.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"Qt5Multimedia", but CMake did not find one.
Run Code Online (Sandbox Code Playgroud)
因此,在所述目录中,我询问ls -1并且实际上得到的比我想要的更多:
Qt5Multimedia_CameraBinServicePlugin.cmake
Qt5MultimediaConfig.cmake
Qt5MultimediaConfigVersion.cmake
Qt5Multimedia_QAlsaPlugin.cmake
Qt5Multimedia_QGstreamerAudioDecoderServicePlugin.cmake
Qt5Multimedia_QGstreamerCaptureServicePlugin.cmake
Qt5Multimedia_QGstreamerPlayerServicePlugin.cmake
Qt5Multimedia_QM3uPlaylistPlugin.cmake
Qt5Multimedia_QPulseAudioPlugin.cmake
Run Code Online (Sandbox Code Playgroud)
你们中的任何人都可以告诉我,为了能够使用 QSound 类来播放一些 .wav 文件,应该采取哪些措施?
我正在尝试编写一个小型演示程序,该程序具有两个正在运行的cuda流,并受事件控制,彼此等待。到目前为止,该程序如下所示:
// event.cu
#include <iostream>
#include <cstdio>
#include <cuda_runtime.h>
#include <cuda.h>
using namespace std;
__global__ void k_A1() { printf("\tHi! I am Kernel A1.\n"); }
__global__ void k_B1() { printf("\tHi! I am Kernel B1.\n"); }
__global__ void k_A2() { printf("\tHi! I am Kernel A2.\n"); }
__global__ void k_B2() { printf("\tHi! I am Kernel B2.\n"); }
int main()
{
cudaStream_t streamA, streamB;
cudaEvent_t halfA, halfB;
cudaStreamCreate(&streamA);
cudaStreamCreate(&streamB);
cudaEventCreate(&halfA);
cudaEventCreate(&halfB);
cout << "Here is the plan:" << endl <<
"Stream A: A1, launch …Run Code Online (Sandbox Code Playgroud) 我需要Ubuntu下的C eigenproblem求解器.为此我从lapack 3.5.0中给了LAPACKE一个镜头并且实际设法编写了下面的示例程序,这是我用正交系统和对角矩阵构造的例子
EV = [
.6, -.8, 0
.8, .6, 0
0, 0, 1
];
D = [
2, 0, 0
0, -3, 0
0, 0, 0
];
Run Code Online (Sandbox Code Playgroud)
通过产生A:= EV D EV'.
虽然较低的程序运行正常,但结果奇怪地不准确.这里输出结束:
...
Lambda: -3.07386, 0, 1.87386
EV = [
-0.788205 0 -0.615412
0.615412 0 -0.788205
-0 1 0
];
Info: 0
Run Code Online (Sandbox Code Playgroud)
作为文档,我使用了www.physics.orst.edu/~rubin/nacphy/lapack/routines/dsyev.html
我的完整来源:
/**
* eigen.cpp
*
* Given that you put version 3.5.0 into /opt/lapack/ compile this with:
* g++ eigen.cpp -I"/opt/lapack/lapack-3.5.0/lapacke/include" \
-L"/opt/lapack/lapack-3.5.0" -llapacke …Run Code Online (Sandbox Code Playgroud) 用C告诉我的电脑
printf("%d",(int)-1);
Run Code Online (Sandbox Code Playgroud)
我确实希望,并且通常也得到'-1'响应.但是,在我的基于Ubuntu的Cuda 5.0上使用的特斯拉M2090 Nvidia卡这个无辜的演示程序
/** cheese.cu */
#include <iostream>
#include <cuda.h>
#include <cstdio>
using namespace std;
template<typename T> struct SpacePtr
{ size_t size; T* ptr; };
__global__ void f(SpacePtr<int>* sp)
{
printf("This _is_ a 'minus one' or ain't it: %d\n",(int)-1);
// Note: All appears to work fine with %lu instead of %zd
// Still: How does the size value affect the -1?
printf("On DEV: Size: %zd, Minus One: %d\n",sp->size,(int)-1);
}
int main()
{
SpacePtr<int> data; data.ptr = 0; data.size …Run Code Online (Sandbox Code Playgroud)