首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >cuComplex.h和exp()

cuComplex.h和exp()
EN

Stack Overflow用户
提问于 2012-03-25 14:00:02
回答 2查看 3.9K关注 0票数 2

Q0:

cuComplex.h是否支持exp()?

Q1:

如何写A=B* exp(i * C),其中A,B,C是相同大小的实数数组?是这样的吗?

main:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cuComplex A;
float B;
cuComplex c;

内核:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c[idx] = ( 0, C[idx] );

A[idx] = B[idx] * exp( c[idx] ); 

Q2:

cuComplex包含2个浮点数,这意味着我必须分配比原始矩阵多2倍的内存。有没有办法创建纯虚数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-25 18:59:11

H只提供了cuComplex上的一些基本操作(主要是那些在CUBLAS和CUFFT库中使用的操作),不支持指数函数。

您可以使用基于组件的算法自己实现指数。cuComplex将复数的实部存储在x分量中,将虚部存储在y分量中。给定一个复数z=x+ i*y,指数可以计算为:

exp(z) = exp(x) * (cos(y) +i* sin(y))

这将导致以下CUDA代码(未经测试):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cuComplex my_complex_exp (cuComplex arg)
{
   cuComplex res;
   float s, c;
   float e = expf(arg.x);
   sincosf(arg.y, &s, &c);
   res.x = c * e;
   res.y = s * e;
   return res;
}
票数 7
EN

Stack Overflow用户

发布于 2020-08-26 17:08:30

Thrust现在也支持complex exponentials

没有必要以其他方式使用推力来实现此功能。您可以包含推力复杂的头文件,并在普通CUDA代码中使用这些结构。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cat t1793.cu
#include <cuComplex.h>
#include <thrust/complex.h>
#include <stdio.h>

__host__ __device__
cuFloatComplex my_complex_exp (cuFloatComplex arg)
{
   cuFloatComplex res;
   float s, c;
   float e = expf(arg.x);
   sincosf(arg.y, &s, &c);
   res.x = c * e;
   res.y = s * e;
   return res;
}

__global__ void demo(){

  cuFloatComplex a = make_cuFloatComplex(1.0f, 1.0f);
  thrust::complex<float> b(1.0f, 1.0f);
  printf("thrust: %f,%f, cuComplex: %f,%f\n", exp(b).real(), exp(b).imag(), cuCrealf( my_complex_exp(a)), cuCimagf(my_complex_exp(a)));
}

int main(){

  demo<<<1,1>>>();
  cudaDeviceSynchronize();
}
$ nvcc -o t1793 t1793.cu
$ cuda-memcheck ./t1793
========= CUDA-MEMCHECK
thrust: 1.468694,2.287355, cuComplex: 1.468694,2.287355
========= ERROR SUMMARY: 0 errors
$
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9860711

复制
相关文章
Java 国际化
当产品有多语言环境的需求时,我们就需要为不同的语言提供不同的处理。前端解决了绝大多数的国际化问题,偶尔后端也需要一些国际化需求,刚好 Java 就支持这种操作
晚上没宵夜
2021/12/02
1.1K0
Java 国际化
xwiki开发者指南-国际化应用程序
XWiki 4.3以前,需要在管理员页面注册一个Document Resource Bundle,选择"Localization"然后在"Internationalization Document Bundles"字段,你可以指定多个页面,以逗号分隔。
lovelife110
2021/01/14
5510
将Elasticsearch直接连接到Java EE应用程序
时髦的大数据来自3 V:音量,种类和速度。卷是指数据的大小,品种是指不同类型的数据,而速度是指数据处理的速度。为了处理持久性大数据,NoSQL数据库可以更快地写入和读取数据。但由于数量众多,搜索引擎需要查找没有大量计算机能力且耗费太多时间的信息。搜索引擎是一种旨在搜索信息的软件系统; 这种机制使用户获得他们想要的信息变得更加直接和清晰。
February
2018/11/14
1K0
将Java EE应用程序部署到Docker Swarm集群
Docker Swarm 为Docker提供本地集群。Docker Swarm 0.2.0版本的集群 提供了Docker Swarm 的基本介绍,以及如何创建一个简单的具有三节点的集群。作为复习,在这里展示一下Docker Swarm的关键组件:
李志伟
2019/12/17
1.3K0
将Java EE应用程序部署到Docker Swarm集群
将基于MicroProfile的Java应用程序部署到Bluemix
本文介绍了如何将基于MicroProfile的Java应用程序部署到Bluemix上。首先介绍了如何通过Microservice Builder创建新的基于Java的Microservices,然后介绍了如何将它们部署到Bluemix上的Kubernetes集群。最后,提供了部署Java应用程序到Bluemix的详细步骤和示例代码。
亦非demo
2018/01/05
1.8K0
将基于MicroProfile的Java应用程序部署到Bluemix
将基于MicroProfile的Java应用程序部署到Bluemix
本文介绍如何将基于MicroProfile的Java应用程序部署到Bluemix上。首先介绍了MicroProfile的基本概念,然后描述了如何利用Bluemix的Microservice Builder构建新的微服务。接着,本文详细说明了如何将微服务部署到Kubernetes,并提供了示例代码。最后,本文提供了将服务部署到Kubernetes的步骤和示例代码。
Techeek
2018/01/05
1.3K0
将基于MicroProfile的Java应用程序部署到Bluemix
将Java EE应用程序部署到Docker Swarm集群
Techeek
2018/01/04
1.9K0
将Java EE应用程序部署到Docker Swarm集群
将Java EE应用程序部署到Docker Swarm集群
Docker Swarm为Docker提供本地集群。 使用Docker Swarm 0.2.0的集群一文提供了对Docker Swarm的基本介绍,以及如何创建一个简单的三节点集群。作为一个回顾,Docker Swarm的关键组件如下所示:
lemoon1993
2018/01/10
2.5K0
[Java 进阶]Java中的国际化
背景知识 现代软件开发,往往做出的应用程序不止给一个国家的人去使用。不同国家的人往往存在语言文字不通的问题。由此产生了国际化(internationalization)、多语言(m
静默虚空
2018/01/05
2.3K0
奥克兰政府将打造国际化AR/VR中心
奥克兰旅游事务与经济发展部门(ATEED)是奥克兰市政府下辖的一个机构,ATEED日前宣布设立一个全新的增强现实与虚拟现实研发中心——AR/VR Garage。该机构表示要将奥克兰打造成一个国际化的A
VRPinea
2018/05/14
6310
Java 国际化标准程序实现
如果要想实现国际化的操作,那么首先要解决的问题就是如何读取资源文件的问题;所谓的资源文件 就是指文件后缀名称为:“*.properties”,里面保存的内容按照“key = value”的形式保存。
Mirror王宇阳
2020/11/12
6440
Java国际化/本地化实战
开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面——这便是典型的i18n国际化问题。
JavaEdge
2020/05/27
2.4K0
Java国际化/本地化实战
将Spring Boot应用程序部署到Bluemix
在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。作为例子,我再次使用Spring REST示例。在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。作为例子,我再次使用Spring REST示例。
FLYMOTH
2018/01/15
2.5K0
将Spring Boot应用程序部署到Bluemix
将Spring Boot应用程序部署到Bluemix
在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。我会再次使用S
johnniang
2018/01/08
2.4K0
将Spring Boot应用程序部署到Bluemix
将windows应用程序注册为windows服务
@echo off ::设置服务名称 set service_name=ServiceManagement ::设置服务描述 set service_description=文件安全上传服务 ::设置服务程序路径 set prog_path=%cd:\=\\%\\ServiceManagement.exe ::设置服务的启动方式 auto:自动 demand:手动 disabled:禁用 set strt=auto echo EasyService 一键服务 echo =========================================================== ::pause ::======================以下部分勿随意修改========================== set s32=%cd%\system32 set reg_file=EasyService.reg net stop %service_name% 2>nul
FreeTimeWorker
2020/08/31
1.4K0
将Spring Boot应用程序部署到Bluemix
在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。我将再次使用S
电工昌威
2018/01/05
2.4K0
将Spring Boot应用程序部署到Bluemix
腾讯开源国际化新突破,将紧密参与全球开源治理
近日,腾讯正式加入Linux基金会旗下TODO工作组(TODO Group)(https://todogroup.org/),这标志着腾讯开源将进一步与国际接轨,与合作伙伴携手打造技术开放、协同共赢的开源生态。 腾讯副总裁、腾讯技术委员会决策委员姚星表示:“我很高兴看到腾讯加入TODO工作组。开源协同对于腾讯不仅仅是一个口号,我们希望它能带动公司内部研发文化的升级,希望能与那些同有开源基因的企业一起交流最佳实践,也希望看到越来越多的社区用户使用我们的开源技术。” 与其它围绕开源项目的基金会不同 ,TO
腾讯技术工程官方号
2019/08/05
6600
腾讯开源国际化新突破,将紧密参与全球开源治理
java调用外部应用程序
最近因为需要做视频文件转换,在网上找了下,比较多的推荐是使用ffmpeg来实现,于是准备在java语言的基础上去实现,经过分析其实就是调用ffmpeg提供的应用命令去完成。
sucl
2019/08/07
3.6K1
java调用外部应用程序
Docker Java应用程序示例
正如前面教程文章所提到的,Docker可以执行任何应用程序。在这里,创建一个Java应用程序并使用docker进行运行。此示例分以下几个步骤完成。
黑洞代码
2022/01/04
7620
点击加载更多

相似问题

Java国际化

40

国际化Java

20

国际化java软件

22

java国际化规则

20

如何用Java实现应用程序的国际化?

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文