栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

CUDA初学者-Thrust - Numerics(14)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CUDA初学者-Thrust - Numerics(14)

本人 CUDA小白一枚,要是有什么不对,还望各位大佬指点。
本文及后面的几篇将分别从几个方面来大概阐述一下Thrust的一些接口。原来的网址在这里

7.Numerics

7.1 Complex Numbers 复数

template 
struct thrust::complex;

typedef see below thrust::complex::value_type;
// 复数
__host__ __device__
thrust::complex::complex(const T & re);

__host__ __device__
thrust::complex::complex(const T & re, const T & im);

template 
__host__ __device__
thrust::complex::complex(const complex< U > & z);

__host__ __device__
thrust::complex::complex(const std::complex< T > & z);

template 
__host__ __device__
thrust::complex::complex(const std::complex< U > & z);
// =重构
__host__ __device__ complex &
thrust::complex::operator=(const T & re);

complex & thrust::complex::operator=(const complex< T > & z) = default;

template 
__host__ __device__ complex &
thrust::complex::operator=(const complex< U > & z);

__host__ __device__ complex &
thrust::complex::operator=(const std::complex< T > & z);

template 
__host__ __device__ complex &
thrust::complex::operator=(const std::complex< U > & z);
// += 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator+=(const complex< U > & z);
// -= 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator-=(const complex< U > & z);
// *= 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator*=(const complex< U > & z);
// /= 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator/=(const complex< U > & z);
// += 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator+=(const U & z);
// -= 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator-=(const U & z);
// *= 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator*=(const U & z);
// /= 重构
template 
__host__ __device__ complex< T > &
thrust::complex::operator/=(const U & z);
// 返回实部
__host__ __device__ T
thrust::complex::real() const;
// 返回虚部
__host__ __device__ T
thrust::complex::imag() const;
// 返回实部
__host__ __device__ T
thrust::complex::real() const;
// 返回虚部
__host__ __device__ T
thrust::complex::imag() const;
// 返回实部
__host__ __device__ void
thrust::complex::real(T re);
// 返回虚部
__host__ __device__ void
thrust::complex::imag(T im);
// 返回实部
__host__ __device__ void
thrust::complex::real(T re);
// 返回虚部
__host__ __device__ void
thrust::complex::imag(T im);

__host__
thrust::complex::complex< T >() const;
// 返回绝对值
template 
__host__ __device__ T
thrust::abs(const complex< T > & z);
// 返回弧度制的相位角
template 
__host__ __device__ T
thrust::arg(const complex< T > & z);
// 返回复数的平方根
template 
__host__ __device__ T
thrust::norm(const complex< T > & z);
// 返回复共轭
template 
__host__ __device__ complex< T >
thrust::conj(const complex< T > & z);
// 返回特定复数平方根和特定相位的复数
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::polar(const T0 & m,
  const T1 & theta = T1());
// 返回复数在黎曼球面上面的投影
template 
__host__ __device__ complex< T >
thrust::proj(const T & z);
// + 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator+(
	const complex< T0 > & x,
  	const complex< T1 > & y);
// + 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator+(
	const complex< T0 > & x,
  	const T1 & y);
// + 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator+(
	const T0 & x,
  	const complex< T1 > & y);
// + 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator-(const complex< T0 > & x,
  const complex< T1 > & y);
// - 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator-(
	const complex< T0 > & x,
  	const T1 & y);
// - 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator-(
	const T0 & x,
  	const complex< T1 > & y);
// * 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator*(
	const complex< T0 > & x,
  	const complex< T1 > & y);
// * 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator*(
	const complex< T0 > & x,
  	const T1 & y);
// * 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator*(
	const T0 & x,
  	const complex< T1 > & y);
// / 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator/(const complex< T0 > & x,
  const complex< T1 > & y);
// / 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator/(const complex< T0 > & x,
  const T1 & y);
// / 重构
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::operator/(const T0 & x,
  const complex< T1 > & y);
// + 重构
template 
__host__ __device__ complex< T >
thrust::operator+(const complex< T > & y);
// - 重构
template 
__host__ __device__ complex< T >
thrust::operator-(const complex< T > & y);
// e指数
template 
__host__ __device__ complex< T >
thrust::exp(const complex< T > & z);
// 对数
template 
__host__ __device__ complex< T >
thrust::log(const complex< T > & z);
// 10底对数
template 
__host__ __device__ complex< T >
thrust::log10(const complex< T > & z);
// 次方
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::pow(
	const complex< T0 > & x,
  	const complex< T1 > & y);
// 次方
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::pow(
	const complex< T0 > & x,
  	const T1 & y);
// 次方
template 
__host__ __device__ complex< typename detail::promoted_numerical_type< T0, T1 >::type >
thrust::pow(const T0 & x,
  const complex< T1 > & y);
// 求根 
template 
__host__ __device__ complex< T >
thrust::sqrt(const complex< T > & z);
// 余弦
template 
__host__ __device__ complex< T >
thrust::cos(const complex< T > & z);
// 正弦
template 
__host__ __device__ complex< T >
thrust::sin(const complex< T > & z);
// 正切
template 
__host__ __device__ complex< T >
thrust::tan(const complex< T > & z);
// 双曲余弦
template 
__host__ __device__ complex< T >
thrust::cosh(const complex< T > & z);
// 双曲正弦
template 
__host__ __device__ complex< T >
thrust::sinh(const complex< T > & z);
// 双曲正切
template 
__host__ __device__ complex< T >
thrust::tanh(const complex< T > & z);
// 反余弦
template 
__host__ __device__ complex< T >
thrust::acos(const complex< T > & z);
// 反正弦
template 
__host__ __device__ complex< T >
thrust::asin(const complex< T > & z);
// 反正切
template 
__host__ __device__ complex< T >
thrust::atan(const complex< T > & z);
// 反双曲余弦
template 
__host__ __device__ complex< T >
thrust::acosh(const complex< T > & z);
// 反双曲正弦
template 
__host__ __device__ complex< T >
thrust::asinh(const complex< T > & z);
// 反双曲正切
template 
__host__ __device__ complex< T >
thrust::atanh(const complex< T > & z);
// << 重构
template 
std::basic_ostream< CharT, Traits > &
thrust::operator<<(
	std::basic_ostream< CharT, Traits > & os,
  	const complex< T > & z);
// >> 重构
template 
__host__ std::basic_istream< CharT, Traits > &
thrust::operator>>(
	std::basic_istream< CharT, Traits > & is,
  	complex< T > & z);
// == 重构
template 
__host__ __device__ bool
thrust::operator==(
	const complex< T0 > & x,
  	const complex< T1 > & y);
// == 重构
template 
__host__ __device__ bool
thrust::operator==(
	const complex< T0 > & x,
  	const std::complex< T1 > & y);
// == 重构
template 
__host__ __device__ bool
thrust::operator==(
	const std::complex< T0 > & x,
  	const complex< T1 > & y);
// == 重构
template 
__host__ __device__ bool
thrust::operator==(
	const T0 & x,
  	const complex< T1 > & y);
// == 重构
template 
__host__ __device__ bool
thrust::operator==(
	const complex< T0 > & x,
  	const T1 & y);
// == 重构
template 
__host__ __device__ bool
thrust::operator!=(
	const complex< T0 > & x,
  	const complex< T1 > & y);
// != 重构
template 
__host__ __device__ bool
thrust::operator!=(
	const complex< T0 > & x,
  	const std::complex< T1 > & y);
// != 重构
template 
__host__ __device__ bool
thrust::operator!=(
	const std::complex< T0 > & x,
  	const complex< T1 > & y);
// != 重构
template 
__host__ __device__ bool
thrust::operator!=(
	const T0 & x,
  	const complex< T1 > & y);
// != 重构
template 
__host__ __device__ bool
thrust::operator!=(
	const complex< T0 > & x,
  	const T1 & y);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923999.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号