OpenCV CUDA模塊設備層-----雙曲余弦函數cosh()

  • 操作系統:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 編程語言:C++11

算法描述

該函數用于計算四維浮點向量(float4類型)的雙曲余弦值,作用于CUDA設備端。雙曲余弦函數定義為cosh(x) = (e? + e??)/2,具有偶函數性質(cosh(-x) = cosh(x))

函數原型

__device__ __forceinline__ float4 cv::cudev::cosh 	( 	const float4 &  	a	) 	

參數

參數類型描述
aconst float4&輸入向量,每個分量獨立計算雙曲余弦

返回值

返回float4類型向量,其每個分量為輸入向量對應分量的雙曲余弦值,值域為[1, +∞)

應用場景?

適用于GPU加速的數學計算、圖像處理(如非線性濾波)和物理模擬等領域。

代碼示例


#include <opencv2/opencv.hpp>
#include <opencv2/cudev/common.hpp>
#include <opencv2/cudev/util/vec_math.hpp>__global__ void kernel_cosh(const float4* input, float4* output, int size) {int idx = blockIdx.x * blockDim.x + threadIdx.x;if (idx < size) {output[idx] = cv::cudev::cosh(input[idx]);}
}int main() {const int N = 4;float4 h_input[N] = {{0.0f, 1.0f, 2.0f, 3.0f},{-1.0f, -2.0f, -3.0f, -4.0f},{0.5f, 1.5f, 2.5f, 3.5f},{-0.5f, -1.5f, -2.5f, -3.5f}};float4 h_output[N];// 分配設備內存float4* d_input;float4* d_output;cudaMalloc(&d_input, N * sizeof(float4));cudaMalloc(&d_output, N * sizeof(float4));// 拷貝數據到設備cudaMemcpy(d_input, h_input, N * sizeof(float4), cudaMemcpyHostToDevice);// 調用核函數dim3 block(4);dim3 grid(1);kernel_cosh<<<grid, block>>>(d_input, d_output, N);// 拷貝結果回主機cudaMemcpy(h_output, d_output, N * sizeof(float4), cudaMemcpyDeviceToHost);// 打印結果for (int i = 0; i < N; ++i) {printf("cosh(%.1f, %.1f, %.1f, %.1f) = (%.6f, %.6f, %.6f, %.6f)\n",h_input[i].x, h_input[i].y, h_input[i].z, h_input[i].w,h_output[i].x, h_output[i].y, h_output[i].z, h_output[i].w);}// 釋放內存cudaFree(d_input);cudaFree(d_output);return 0;
}

運行結果

cosh(0.0, 1.0, 2.0, 3.0) = (1.000000, 1.543081, 3.762196, 10.067662)
cosh(-1.0, -2.0, -3.0, -4.0) = (1.543081, 3.762196, 10.067662, 27.308231)
cosh(0.5, 1.5, 2.5, 3.5) = (1.127626, 2.352410, 6.132289, 16.572824)
cosh(-0.5, -1.5, -2.5, -3.5) = (1.127626, 2.352410, 6.132289, 16.572824)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86480.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

48頁PPT | 企業數字化轉型關鍵方法論:實踐路徑、案例和落地評估框架

目錄 一、什么是企業數據化轉型&#xff1f; 二、為什么要進行數據化轉型&#xff1f; 1. 市場復雜性與不確定性上升 2. 內部流程效率與協同難題突出 3. 數字資產沉淀不足&#xff0c;智能化基礎薄弱 三、數據化流程管理&#xff1a;從“業務流程”到“數據流程”的對齊 …

VTK中的形態學處理

VTK圖像處理代碼解析:閾值化與形態學開閉運算 這段代碼展示了使用VTK進行醫學圖像處理的兩個關鍵步驟:閾值分割和形態學開閉運算。下面我將詳細解析每個部分的功能和實現原理。 處理前 處理后 1. 閾值分割部分 (vtkImageThreshold) vtkSmartPointer<vtkImageThresho…

xlsx.utils.sheet_to_json() 方法詳解

sheet_to_json() 是 SheetJS/xlsx 庫中最常用的方法之一&#xff0c;用于將 Excel 工作表&#xff08;Worksheet&#xff09;轉換為 JSON 格式數據。下面我將全面講解它的用法、參數配置和實際應用場景。 基本語法 javascript 復制 下載 const jsonData XLSX.utils.sheet…

〔從零搭建〕BI可視化平臺部署指南

&#x1f525;&#x1f525; AllData大數據產品是可定義數據中臺&#xff0c;以數據平臺為底座&#xff0c;以數據中臺為橋梁&#xff0c;以機器學習平臺為中層框架&#xff0c;以大模型應用為上游產品&#xff0c;提供全鏈路數字化解決方案。 ?杭州奧零數據科技官網&#xf…

合規型區塊鏈RWA系統解決方案報告——機構資產數字化的終極武器

&#xff08;跨境金融科技解決方案白皮書&#xff09; 一、直擊機構客戶四大痛點 痛點傳統方案缺陷我們的破局點?? 跨境資產流動性差結算周期30天&#xff0c;摩擦成本超8%?? 724h全球實時交易&#xff08;速度提升90%&#xff09;?? 合規成本飆升KYC/AML人工審核占成本…

探索阿里云容器:解鎖云原生應用的無限可能

引言&#xff1a;容器時代的開啟 在數字化浪潮洶涌澎湃的當下&#xff0c;云計算已成為企業創新與發展的關鍵驅動力。從早期的基礎設施即服務&#xff08;IaaS&#xff09;&#xff0c;到如今蓬勃發展的平臺即服務&#xff08;PaaS&#xff09;和軟件即服務&#xff08;SaaS&a…

spring-ai 1.0.0 (1)模型調用能力

聽說1.0是一個非常好用的版本&#xff0c;最后還是扛不住聽說的壓力&#xff0c;為了落實自己懸浮心理&#xff0c;自己還是著手實踐一下了。 第一步pom集成&#xff1a; 參考spring-projects/spring-ai | DeepWiki維基以及官方文檔入門 &#xff1a;&#xff1a; Spring AI …

數據分享:汽車行業-汽車屬性數據集

說明&#xff1a;如需數據可以直接到文章最后關注獲取。 1.數據背景 Automobile數據集源自于對汽車市場深入研究的需求&#xff0c;旨在為汽車行業提供一個全面且詳細的資源&#xff0c;以便更好地理解影響汽車價格及性能的各種因素。該數據集最初由卡內基梅隆大學&#x…

C++ 第三階段:語言改進 - 第四節:nullptr vs NULL

目錄 一、背景與概述 二、NULL 的定義與問題 1. NULL 的定義 2. NULL 的問題 三、nullptr 的定義與優勢 1. nullptr 的定義 2. nullptr 的優勢 四、nullptr 與 NULL 的對比 五、實際應用場景 1. 初始化指針 2. 函數調用與重載 3. 條件判斷 4. 模板與泛型編程 六、…

計算機存儲器容量擴展設計實例解析

存儲器容量擴充是《計算機組成原理》課程的重要知識點。講解一個例題&#xff0c;以說明進行存儲器容量擴充設計的方法。 題目&#xff1a;在32位計算機系統中&#xff0c;用8K16位的SRAM芯片組成一個64KB的存儲器&#xff0c;已知起始地址為&#xff1a;6000 0000H。已知&…

轉載-秒殺系統—1.架構設計和方案簡介

轉載&#xff1a; https://mp.weixin.qq.com/s?__bizMzg5MzY5NDM3MQ&mid2247490866&idx1&sn0081517454680c85e0ed23eda4e82df5&chksmc02ba5fef75c2ce8b0c7f54182f3bda539230c75d2d75ed2b514b93decc0ff0c5de548a35dc3&cur_album_id3548464749150224391&…

Kubernetes中的容器生命周期回調

在介紹Kubernetes容器生命周期回調前&#xff0c;展示一個案例。 有個私有化部署的項目需要跑一個redis用作緩存&#xff0c;因redis中的數據不需要持久化&#xff0c;選擇在Kubernetes中通過deployment的方式部署&#xff0c;下面是deployment的代碼片段&#xff0c; ......…

基于STM32的工業倉庫環境智能監控系統設計

文章目錄 一、前言1.1 項目介紹【1】項目開發背景【2】設計實現的功能【3】項目硬件模塊組成【4】設計意義【5】市面上同類產品研究現狀【6】摘要 1.2 設計思路1.3 系統功能總結1.4 開發工具的選擇【1】設備端開發【2】上位機開發 1.5 模塊的技術詳情介紹【1】ESP8266-WIFI模塊…

如何在 Manjaro Linux 上啟用 AUR 倉庫來安裝軟件包

Manjaro 是基于 Arch 的系統&#xff0c;是了解和學習 Arch Linux 命令的絕佳方式。它自帶所有流行的桌面環境界面&#xff0c;無論是 XFCE 還是 Gnome 的愛好者&#xff0c;都可以在 Manjaro 中直接使用。 Manjaro 或 Arch Linux 的默認軟件包管理器是 Pacman&#xff0c;我們…

有限上升時間信號的反射波形

有限上升時間信號的反射波形: 從上一節討論中我們知道&#xff0c;阻抗不連續的點處&#xff0c;反射信號是入射信號的一個副本&#xff0c;并討論了上升時間為0的信號的反射情況。這些規律對于上升時間不為0的信號同樣適用&#xff0c;只不過入射信號和反射信號的疊加稍稍復雜…

Vue 3.4+ defineModel 全面詳解 + 實戰最佳實踐

&#x1f31f; 前言&#xff1a;為什么要關注 defineModel&#xff1f; 過去我們在 Vue 組件中使用 v-model 時&#xff0c;常需要這樣寫&#xff1a; // 子組件 defineProps([modelValue]) defineEmits([update:modelValue])function update(val) {emit(update:modelValue, …

MySQL事物隔離級別詳解

目錄 事物隔離級別總結 實際情況演示 臟讀&#xff08;未提交&#xff09; 避免臟讀&#xff08;讀已提交&#xff09; 不可重復讀 可重復讀 幻讀 事物隔離級別總結 SQL標準定義了四種事物隔離級別&#xff0c;用來平衡事物的隔離性&#xff08;Isolation&#xff09;和…

【安卓開發】Kotlin入門教程

一、Kotlin 基礎入門 1.1 Kotlin 簡介 Kotlin 是一種由 JetBrains 開發的靜態類型編程語言&#xff0c;運行在 Java 虛擬機上&#xff0c;也可以編譯為 JavaScript 或原生代碼。它于 2017 年被 Google 宣布為 Android 官方開發語言。 主要特點&#xff1a; 簡潔&#xff1a;…

工業機器人保護氣體節約方法

焊接在現代工業生產中作為一項關鍵技術&#xff0c;其效率和質量直接影響著產品的最終性能和生產成本。隨著智能制造的不斷推進&#xff0c;工業焊接機器人在自動化生產線中扮演著越來越重要的角色。焊接過程中的氣體調節一直是一個技術難題&#xff0c;它直接關系到焊接質量的…

java中集合API

集合API 一、簡述二、Collection&#xff08;1&#xff09;.List1.ArrayList&#xff1a;2. LinkedList &#xff08;2&#xff09; Set 三、Map1.HashMap2. TreeMap 三、Iterator接口Collections工具類1.對集合元素進行排序2.基于Comparator&#xff0c;自定義方法(內部類)進行…