- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经下载了一个代码:
/*================================================================
a_times_b_cmplx.c = used by a couple of mex functions
provide Matrix vector multiplications,
and solve triangular systems
(sparse matrix and full vector)
CSC_CmplxVecMult_CAB_double, CSR_CmplxVecMult_CAB_double,
CSCsymm_CmplxVecMult_CAB_double added by Mirko Visontai (10/24/2003)
*=================================================================*/
# include "math.h"
///*c<-a'*b */
//void scalar_product(
// const int m, const int k, /*nb_rows, nb_columns*/
// const double *a,
// const double *b,
// double *c)
//{
// int i;
// double d;
// d = 0;
// for (i=0;i!=m;i++)
// d+=a[i]*b[i];
// c[0] = d;
//}
/*C<-a*A*B+C*/
void CSC_VecMult_CaABC_double(const int m, const int k, const double alpha, const double *val, const int *indx, const int *pntrb,const double *b, double *c)
{
int i,j,jb,je;
for (i=0;i!=k;i++){
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++)
c[indx[j]] += alpha * b[i] * val[j];
}
}
/*C<-a*A'*B+C*/
void CSR_VecMult_CaABC_double(const int k, const int m, const double alpha,const double *val, const mwIndex *indx, const mwIndex *pntrb,const double *b, double *c)
{
double t;
const double *pval;
int i,j,jb,je;
pval = val;
for (i=0;i!=m;i++) {
t = 0;
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++)
t += alpha * b[indx[j]] * (*pval++);
c[i] += t;
}
}
/*C<-A*b */
void CSC_VecMult_CAB_double(const int m, const int k, /*nb_rows, nb_columns*/ const double *val, const int *indx, const int *pntrb, const double *b, double *c)
{
int i,j,jb,je;
double *pc=c;
for (i=0;i!=m;i++)
*pc++ = 0;
for (i=0;i!=k;i++){
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++)
c[indx[j]] += b[i] * val[j];
}
}
/*C<-A*b (complex)*/
void CSC_CmplxVecMult_CAB_double(const int m, const int k, const double *valr, const double *vali,const int *indx, const int *pntrb,const double *br, const double *bi,double *cr, double *ci )
{
int i,j,jb,je;
double *pcr=cr;
double *pci=ci;
for (i=0;i!=m;i++){
*pcr++ = 0.0;
*pci++ = 0.0;
}
for (i=0;i!=k;i++){
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++){
cr[indx[j]] += (br[i] * valr[j]) - (bi[i] * vali[j]);
ci[indx[j]] += (br[i] * vali[j]) + (bi[i] * valr[j]);
}
}
}
/*C<-A'*b
plus rapide que CSC_VecMult_CAB_double */
void CSR_VecMult_CAB_double(const int k, const int m, const double *val, const int *indx, const int *pntrb, const double *b, double *c)
{
double t;
const double *pval;
double *pc=c;
int i,j,jb,je;
for (i=0;i!=m;i++)
*pc++ = 0;
pval = val;
for (i=0;i!=m;i++) {
t = 0;
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++)
t += b[indx[j]] * (*pval++);
c[i] += t;
}
}
/*C<-A'*b (complex)
plus rapide que CSC_VecMult_CAB_double */
void CSR_CmplxVecMult_CAB_double(const int k, const int m, const double *valr, const double *vali, const int *indx, const int *pntrb, const double *br, const double *bi, double *cr, double *ci)
{
double tr, ti;
const double *pvalr;
const double *pvali;
double *pcr=cr;
double *pci=ci;
int i,j,jb,je;
for (i=0;i!=m;i++){
*pcr++ = 0.0;
*pci++ = 0.0;
}
pvalr = valr;
pvali = vali;
for (i=0;i!=m;i++) {
tr = 0.0;
ti = 0.0;
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++){
tr += (br[indx[j]] * (*pvalr)) - (bi[indx[j]] * (*pvali));
ti += (br[indx[j]] * (*pvali++)) + (bi[indx[j]] * (*pvalr++));
}
cr[i] += tr;
ci[i] += ti;
}
}
/* C<-A*b (A is symmetric) */
void CSRsymm_VecMult_CAB_double(const int k, const int m, const double *val, const mwIndex *indx, const mwIndex *pntrb, const double *b, double *c)
{
const double *pval;
double *pc=c;
int i,j;
int jj;
int rpntrb, rpntre;
int index, nvals;
for (i=0;i!=m;i++)
*pc++ = 0;
pval = val;
for (j=0;j!=k;j++){
rpntrb = pntrb[j];
rpntre = pntrb[j+1];
for (jj=rpntrb;jj!=rpntre;jj++) {
index = indx[jj];
if ( index == j ) {
c[j] += b[j] * (*pval++);
continue;
}
if ( index > j ) {
c[index] += b[j] * (*pval);
c[j] += b[index] * (*pval++);
}
else {
pval++;
}
}
}
}
/* C<-A*b (A is symmetric and complex) */
void CSRsymm_CmplxVecMult_CAB_double(const int k, const int m, const double *valr, const double *vali, const int *indx, const int *pntrb, const double *br, const double *bi, double *cr, double *ci)
{
const double *pvalr, *pvali;
double *pcr=cr;
double *pci=ci;
int i,j;
int jj;
int rpntrb, rpntre;
int index, nvals;
for (i=0;i!=m;i++){
*pcr++ = 0.0;
*pci++ = 0.0;
}
pvalr = valr;
pvali = vali;
for (j=0;j!=k;j++){
rpntrb = pntrb[j];
rpntre = pntrb[j+1];
for (jj=rpntrb;jj!=rpntre;jj++) {
index = indx[jj];
if ( index == j ) {
cr[j] += (br[j] * (*pvalr)) - (bi[j] * (*pvali));
ci[j] += (br[j] * (*pvali++)) + (bi[j] * (*pvalr++));
continue;
}
if ( index > j ) {
cr[index] += (br[j] * (*pvalr)) - (bi[j] * (*pvali));
ci[index] += (br[j] * (*pvali)) + (bi[j] * (*pvalr));
cr[j] += (br[index] * (*pvalr)) - (bi[index] * (*pvali));
ci[j] += (br[index] * (*pvali++)) + (bi[index] * (*pvalr++));
}
else {
pvalr++;
pvali++;
}
}
}
}
/*C<-A\B; with Lower triangular A*/
void CSC_VecTriangSlvLD_CAB_double(const int m, const double *val, const int *indx, const int *pntrb, const double *b, double *c)
{
int i, j, jb, je;
double *pc=c;
double z;
for (i=0;i!=m;i++){
*pc = b[i];
pc++;
}
pc=c;
for (i=0;i!=m;i++) {
jb = pntrb[i];
je = pntrb[i+1];
z = pc[i] / val[jb];
pc[i] = z;
for (j=jb+1;j<je;j++) {
c[indx[j]] -= z*val[j];
}
}
}
/*C<-A\B; with Upper triangular A*/
void CSC_VecTriangSlvUD_CAB_double(const int m, const double *val, const int *indx, const int *pntrb, const double *b, double *c)
{
int i, j, jb, je, index;
double *pc=c;
double z;
for (i=0;i!=m;i++){
*pc = b[i];
pc++;
}
pc=c;
for (i=m-1;i!=-1;i--) {
jb = pntrb[i];
je = pntrb[i+1]-1;
z = pc[i] /val[je];
pc[i] = z;
for (j=jb;j<je;j++) {
c[indx[j]] -= z * val[j];
}
}
}
/*C<-A'\B; where A is upper (little slower than CSC)*/
void CSR_VecTriangSlvLD_CAB_double(const int m, const double *val, const int *indx, const int *pntrb, const double *b, double *c)
{
int i, j, jb, je, index;
double *pc=c;
double z;
double valtmp;
pc=c;
for (i=0;i!=m;i++) {
z = 0;
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j<je;j++) {
index = indx[j];
if ( index == i ) {
valtmp = val[j];
} else {
z += c[index] * val[j];
}
}
pc[i] = (b[i] - z) / valtmp;
}
}
/*C<-A'\B; where A is lower (little slower than CSC)*/
void CSR_VecTriangSlvUD_CAB_double(const int m, const double *val, const int *indx, const int *pntrb, const double *b, double *c)
{
int i, j, jb, je, index;
double *pc=c;
double valtmp;
double z;
pc=c;
for (i=m-1;i!=-1; i--) {
z = 0;
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb+1; j<je; j++) {
z += c[indx[j]] * val[j];
}
pc[i] = (b[i] - z) / val[jb];
}
}
/*C<-A*B, where A is (m,k) and B is (k,n)*/
void CSC_MatMult_CAB_double(const int m, const int n, const int k, const double *val, const int *indx, const int *pntrb, const double *b, const int ldb, double *c, const int ldc)
{
int i,j,jb,je;
double *pc=c;
int l;
for (l=0;l!=n;l++)
for (i=0;i!=m;i++)
*pc++ = 0;
for (l=0;l!=n;l++) {
for (i=0;i!=k;i++){
jb = pntrb[i];
je = pntrb[i+1];
for (j=jb;j!=je;j++)
c[indx[j]] += b[i] * val[j];
}
/*c += ldc; b += ldb; */
c += m; b += m;
}
}
我使用 mex -largeArrayDims thisfile.cpp
并选择 Visual C++ 2010 编译器。但是,它给了我这些错误:
mex -largeArrayDims a_times_b_cmplx.cpp
a_times_b_cmplx.cpp(45)
: error C4430: missing type specifier - int assumed. Note: C++ does not support default-inta_times_b_cmplx.cpp(45)
: error C2143: syntax error : missing','
before'*'
a_times_b_cmplx.cpp(54)
: error C2065:'pntrb'
: undeclared identifiera_times_b_cmplx.cpp(55)
: error C2065:'pntrb'
: undeclared identifiera_times_b_cmplx.cpp(57)
: error C2065:'b'
: undeclared identifiera_times_b_cmplx.cpp(57)
: error C2065:'indx'
: undeclared identifiera_times_b_cmplx.cpp(58)
: error C2065:'c'
: undeclared identifiera_times_b_cmplx.cpp(156)
: error C4430: missing type specifier - int assumed. Note: C++ does not support default-inta_times_b_cmplx.cpp(156)
: error C2143: syntax error : missing','
before'*'
a_times_b_cmplx.cpp(159)
: error C2065:'c'
: undeclared identifiera_times_b_cmplx.cpp(169)
: error C2065:'pntrb'
: undeclared identifiera_times_b_cmplx.cpp(170)
: error C2065:'pntrb'
: undeclared identifiera_times_b_cmplx.cpp(172)
: error C2065:'indx'
: undeclared identifiera_times_b_cmplx.cpp(174)
: error C2065:'c'
: undeclared identifiera_times_b_cmplx.cpp(174)
: error C2065:'b'
: undeclared identifiera_times_b_cmplx.cpp(178)
: error C2065:'c'
: undeclared identifiera_times_b_cmplx.cpp(178)
: error C2065:'b'
: undeclared identifiera_times_b_cmplx.cpp(180)
: error C2065:'c'
: undeclared identifiera_times_b_cmplx.cpp(180)
: error C2065:'b'
: undeclared identifier
C:\PROGRA~1\MATLAB\R2010A\BIN\MEX.PL
: Error: Compile of'a_times_b_cmplx.cpp'
failed.
我不知道为什么会出现这些错误。这是一个完成的、许可的代码,我应该能够混合它。你能告诉我原因并告诉我解决这个问题的方法吗?我真的不知道是编译器的问题还是我的问题。
我认为这可能是因为 mwIndex
。但是我该如何解决呢?
最佳答案
我认为您的编译器无法找到 mwIndex
类型(正如您怀疑的那样)。
Google 快速搜索 matlab documentation显示 mwIndex
是在 matrix.h
头文件中声明的。
所以尝试添加
#include <matrix.h>
...到您的代码。我怀疑大多数错误消息都会消失,但谁知道它背后是否隐藏着任何其他问题。
关于c++ - 为什么这个 CPP 文件在 mex -largeArrayDims 期间出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5863706/
我正在使用 node.js 和 mocha 单元测试,并且希望能够通过 npm 运行测试命令。当我在测试文件夹中运行 Mocha 测试时,测试运行成功。但是,当我运行 npm test 时,测试给出了
我的文本区域中有这些标签 ..... 我正在尝试使用 replaceAll() String 方法替换它们 text.replaceAll("", ""); text.replaceAll("", "
早上好,我是 ZXing 的新手,当我运行我的应用程序时出现以下错误: 异常Ljava/lang/NoClassDefFoundError;初始化 ICOM/google/zxing/client/a
我正在制作一些哈希函数。 它的源代码是... #include #include #include int m_hash(char *input, size_t in_length, char
我正在尝试使用 Spritekit 在 Swift 中编写游戏。目的是带着他的角色迎面而来的矩形逃跑。现在我在 SKPhysicsContactDelegate (didBegin ()) 方法中犯了
我正在尝试创建一个用于导入 CSV 文件的按钮,但出现此错误: actionPerformed(java.awt.event.ActionEvent) in cannot implement
请看下面的代码 public List getNames() { List names = new ArrayList(); try { createConnection(); Sta
我正在尝试添加一个事件以在“dealsArchive”表中创建一个条目,然后从“deals”表中删除该条目。它需要在特定时间执行。 这是我正在尝试使用的: DELIMITER $$ CREATE EV
我试图将两个存储过程的表结果存储到 phpmyadmin 例程窗口中的单个表中,这给了我 mariadb 语法错误。单独调用存储过程给出了结果。 存储过程代码 BEGIN CREATE TABLE t
我想在 videoview 中加载视频之前有一个进度条。但是我收到以下错误。我还添加了所有必要的导入。 我在 ANDROID 中使用 AIDE 这是我的代码 public class MainActi
我已经使用了 AsyncTask,但我不明白为什么在我的设备 (OS 4.0) 上测试时仍然出现错误。我的 apk 构建于 2.3.3 中。我想我把代码弄错了,但我不知道我的错误在哪里。任何人都请帮助
我在测试 friend 网站的安全性时,通过在 URL 末尾添加 ' 发现了 SQL 注入(inject)漏洞该网站是用zend框架构建的我遇到的问题是 MySQL -- 中的注释语法不起作用,因此页
我正在尝试使用堆栈溢出答案之一的交互式信息窗口。 链接如下: interactive infowindow 但是我在代码中使用 getMap() 时遇到错误。虽然我尝试使用 getMapAsync 但
当我编译以下代码时出现错误: The method addMouseListener(Player) is undefined for the type Player 代码: import java.
我是 Android 开发的初学者。我正在开发一个接收 MySql 数据然后将其保存在 SQLite 中的应用程序。 我将 Json 用于同步状态,以便我可以将未同步数据的数量显示为要同步的待处理数据
(这里是Hello world级别的自动化测试人员) 我正在尝试下载一个文件并将其重命名以便于查找。我收到一个错误....这是代码 @Test public void allDownload(
我只是在写另一个程序。并使用: while (cin) words.push_back(s); words是string的vector,s是string。 我的 RAM 使用量在 4 或 5
我是 AngularJS 的新手,我遇到了一个问题。我有一个带有提交按钮的页面,当我单击提交模式时必须打开并且来自 URL 的数据必须存在于模式中。现在,模式打开但它是空的并且没有从 URL 获取数据
我正在尝试读取一个文件(它可以包含任意数量的随机数字,但不会超过 500 个)并将其放入一个数组中。 稍后我将需要使用数组来做很多事情。 但到目前为止,这一小段代码给了我 no match for o
有些人在使用 make 命令进行编译时遇到了问题,所以我想我应该在这里尝试一下,我已经在以下操作系统的 ubuntu 32 位和挤压 64 位上尝试过 我克隆了 git 项目 https://gith
我是一名优秀的程序员,十分优秀!