簡體   English   中英

來自數學公式的 C++ 數學表達式

[英]C++ math expression from math formula

我嘗試在 C++ 表達式中轉換這個數學公式

表達

但我做錯了什么

(log(1.0+a*(getpixel(j,k)))/log10( y ))/(log(2.0)/log10( y ))

首先, log函數已經計算了以e為底的對數。 您不需要執行任何基數更改。

其次,將您的表達式分成幾部分,以便於編寫和理解:

const double F = getpixel(j, k);
const double numerator = log(1.0 + a * F);
const double denominator = log(2.0);
const double result = numerator / denominator;

您可以選擇更多地拆分它(例如,也將a*F1 + a*F分開存儲)。

一旦你得到了它,如果你真的想要在一行中,它很容易組合(但沒有必要;編譯器通常會為你將常量表達式合並在一起):

const double result = log(1.0 + a * getpixel(j, k) / log(2.0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM