- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用名为 dgebal
的 Fortran 例程(文档 here )在我的 Rcpparmadillo 代码中。我已经包含了以下标题:
# include <RcppArmadillo.h>
# include <math.h>
sourceCpp()
编译我的代码时我收到以下错误:
error: 'dgebal_' was not declared in this scope
<R_ext/Lapack.h>
和
<R_ext/BLAS.h>
,代码编译没有错误并且运行良好。但是编译器会抛出一堆这样的警告:
C:/PROGRA~1/R/R-32~1.3/include/R_ext/BLAS.h:49:64: warning: declaration of 'double dasum_(const int*, const double*, const int*)' with C language linkage [enabled by default]
C:/PROGRA~1/R/R-32~1.3/library/RCPPAR~1/include/armadillo_bits/def_blas.hpp:76:1: warning: conflicts with previous declaration 'double arma::dasum_(arma::blas_int*, const double*, arma::blas_int*)' [enabled by default]
dgebal
是否正确? ,但是包含在 R 的 LAPACK 库中?我应该关心这些警告吗?最后,有什么方法可以使用
dgebal
在我的 Rcpparmadillo 代码中没有编译警告? Rcpp 和 Rcpparmadillo 都是最新的。操作系统为 Windows 8.1 64 位。
R_ext/Lapack.h
和
R_ext/BLAS.h
,编译器会抛出上述错误。
#include <RcppArmadillo.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <R.h>
#include <Rinternals.h>
#include <Rmath.h>
#include <R_ext/Lapack.h>
#include <R_ext/BLAS.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
using namespace arma;
// [[Rcpp::export]]
List R_dgebal2(SEXP x)
{
SEXP dims, z, Scale, i_1, i_2;
int n, info;
dims = Rf_getAttrib(x, R_DimSymbol);
n = INTEGER(dims)[0];
z = Rf_duplicate(x); Scale = Rf_allocVector(REALSXP, n);
i_1 = Rf_allocVector(INTSXP, 1); i_2 = Rf_allocVector(INTSXP, 1);
F77_CALL(dgebal)("B", &n, REAL(z), &n, INTEGER(i_1), INTEGER(i_2),
REAL(Scale), &info);
arma::mat zz = as<arma::mat>(wrap(z));
arma::vec scale2 = as<arma::vec>(wrap(Scale));
int i1=as<int>(wrap(i_1)), i2=as<int>(wrap(i_2));
return List::create(_["z"]=zz, _["scale"]=scale2, _["i1"]=i1, _["i2"]=i2);
}
// Test in R
/*** R
Q <- matrix(c(-1.918206e-01,5.999147e-01,0.000000e+00,0.000000e+00,0.000000e+00,1.106148e-01,
-1.152574e+00,5.716490e-01,0.000000e+00,0.000000e+00,0.000000e+00,5.526595e-01,
-1.256864e+00,3.905685e+04,0.000000e+00,0.000000e+00,0.000000e+00,1.929101e-01,
-3.905721e+04,0.000000e+00,8.120577e-02,0.000000e+00,4.923053e-01,3.572873e-01,0.000000e+00),
nrow = 5, byrow = T)
R_dgebal2(Q)
*/
最佳答案
我已经想通了。我刚刚使用以下几行创建了一个本地头文件,并将其 #included 在我的 .cpp 文件中。编译正常,没有警告或错误。
#ifdef ARMA_USE_LAPACK
#if !defined(ARMA_BLAS_CAPITALS)
#define arma_dgebal dgebal
#else
#define arma_dgebal DGEBAL
#endif
extern "C"
void arma_fortran(arma_dgebal)(char* job, int* n, double* a, int* lda,
int* ilo, int* ihi, double* scale, int* info);
#endif
关于Rcpparmadillo : can't call Fortran routine "dgebal"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094867/
有没有更简单的方法是 JavaScript: if (routine !== null && routine.exercises !== undefined && routine.exerci
在我们的软件中,我们不断收到此警告/错误消息。不确定此消息的显示方式/原因。 HTTP asio handshake failed: error:140000DB:SSL routines:SSL r
我正在阅读有关 gobyexample 的教程。我注意到作者已经展示了使用 go routine 的 gochannel 示例,但在错误的 go channel 中他直接向 channel 发送消息。
我们的 Application.cfc 中有以下代码: 在 error.cfm 页面中,我们有以下代码(我没有写): function G
我正在学习 lisp 语言(做 lisp 例程),在一般情况下我知道什么是例程,但在技术上下文中我可以谈论它,因为我现在开始学习例程。那么,例行公事的真正定义是什么?(我已经用谷歌搜索过这个,但没有找
我想创建数据库 (MySQL) 的完整备份,我使用以下命令: mysqldump --routines -u dev_user -pblabla MyDB > d:\DB_Backups\%date%
我正在尝试编写一个应用程序来下载一系列图像。 130 张 116kb 图片(作品) 50 张 500kb 图片(作品) 130 张 500kb 的图片(最终挂起) 230 张 116kb 图片(最终挂
各位,我是 golang 的新手。我想从我的 application.cuz 回滚机制生成的日志文件中获取数据,我遇到了一些问题。例如,我的目标日志文件是 chats.log ,它将重命名为 chat
所以我正在尝试实现一个简单地监听 Redis 订阅的 go 例程(我为此使用 Go-redis 库)然后发送消息在接收/处理 redis 消息后在 channel 上。 像这样: func foo(r
我正在做 Web Crawler围棋之旅的问题。到目前为止,这是我的解决方案: func GatherUrls(url string, fetcher Fetcher) []string {
我刚开始学习 Go,所以请耐心等待,我尝试使用 Go 例程和 channel ,但不知何故遇到了僵局。 举个例子 package main import ( "fmt" "sync"
我是 Go 的新手,我在 Heroku 的应用程序中使用 Go 例程,这些例程很长(最多 7 分钟),并且不能被打断。我看到自动定标器有时会杀死运行例程的 Heroku dyno。我需要一种独立于测功
如何获取最后一个(理想情况下)go 例程(该应用程序有多个 go 例程)的堆栈跟踪,该例程发生 panic 并恢复并仅记录了一条不多的描述性错误消息?不知道哪个套路恢复了。另外,请记住我不会更改任何导
令我惊讶的是,go 例程似乎完美地交错......看到这个之后,我开始相信我还没有了解一些关于内部的缺失信息。示例: $ go run x.go > output $ grep ping output
TL;DR 接受并连接两个独立的 SETS 连接。想用 RPC 并发完成。 我正在尝试在我的计算机上创建半分布式系统。我现在正在处理的这段代码有点像代理节点,换句话说,它总是从一个端口接受客户端连接。
此问题的一个示例是当用户创建资源并删除资源时。我们将执行该操作并增加(减少)计数器缓存。 在测试中,有时会出现计数器缓存未被 go 例程更新的竞争条件。 编辑:抱歉造成混淆,澄清一下:计数器缓存不在内
我有一个关于 go routines 的问题。 我的代码: func main() { ok := make(chan bool, 1) i := 0 fmt.Println(
我想运行多个 Go 例程。我希望他们都同时启动。我添加了另一个同步 waitGroup 并在 go 例程的开始处添加了一个等待。然而,这并不能同时启动所有的 go 例程。我应该怎么做才能让多个 go
var m *sync.RWMutex func main() { m = new(sync.RWMutex) n := 100 go func() { for
1、如果用户有create routine 权限那么他就可以创建procedure | function 。 2、如果用户创建了procedure | function 那么mysql 会自动赋予
我是一名优秀的程序员,十分优秀!